【问题标题】:How to design multiple user forms and models如何设计多个用户表单和模型
【发布时间】:2011-09-10 10:54:57
【问题描述】:

我有一个网站,人们可以在其中查找附近餐馆的菜单。

作为餐厅,您可以注册并输入您的菜单。我应该如何设计模型?

class User < ActiveRecord::Base
  has_one :venue
class Venue < ActiveRecord::Base
  has_many :menus

或者我应该在场地模型中存储所有内容(电子邮件、密码等)?

下一个问题是注册表单。使用 User 和 Venue 模型,我必须通过一个表单创建多个模型。不要认为这对用户很友好。

最后一个问题:我还希望有一个“普通”用户可以对餐馆和其他东西进行评分。我认为这会干扰用户/场地模型方法。

你怎么看?你会怎么做?

提前致谢

【问题讨论】:

    标签: ruby ruby-on-rails-3 forms model ruby-on-rails-3.1


    【解决方案1】:

    听起来您已经用第三个问题回答了您的第一个问题 - 如果您希望能够拥有与 Venues 无关的 Users,您需要将这两个模型分开,或者它干扰你拥有不同类型用户的愿望(至少有能力做到这一点)。如果将它们分开,一些Users 可以与Venues(餐厅老板)相关联,而有些则不能(普通用户)。在您的情况下,普通用户的venue 为零。

    请注意 - has_onebelongs_to 之间的区别并不总是直观的(至少对我来说不是),您可以查看 Rails Active Record Associations guide 以确保您使用的是合适的。

    如果有很多功能只适用于餐馆老板,您可以从另一个模型继承一个模型以避免混乱基类(即有一个 User 模型和一个继承自它的 Owner 模型,或其他东西像那样)。

    就注册表单而言,听起来您想创建一个单一的表单,允许餐厅老板输入将创建他们的UserVenue 的信息。您可以为此使用 nested object forms - 该链接引用 Rails 2.3,但我在 Rails 3 项目中使用此功能,并且一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 2021-06-11
      • 2023-04-09
      • 1970-01-01
      • 2013-05-06
      • 2013-03-07
      • 1970-01-01
      相关资源
      最近更新 更多