【问题标题】:Rails 3: Routing and pluralization issue for has_oneRails 3:has_one 的路由和复数问题
【发布时间】:2012-07-09 19:35:50
【问题描述】:

我为 Etho 创建了一个脚手架,我试图让用户获得 1 个单一的“ethos”进行编辑。 Ethos 正在工作,但在 User 模型上它只与 has_many 一起工作:ethos

用户应该只得到 1,这样我就可以创建更好的关联。但是现在当我更改模型时,它会产生我无法追踪的蜘蛛效应。

用户模型:

class User < ActiveRecord::Base
  has_many :jobs
  has_one  :ethos #used to be has_many :ethos

现在在所有页面上,我在 EthosController#edit 上得到未初始化的常量 User::Ethos

请帮忙,我该如何解决这个问题?

【问题讨论】:

    标签: ruby-on-rails rails-activerecord plural


    【解决方案1】:

    你试过了吗?

    class User < ActiveRecord::Base
      has_many :jobs
      has_one  :etho 
    

    has_one 应该是单数:http://guides.rubyonrails.org/association_basics.html#the-has_one-association

    【讨论】:

    • 对。但第二部分描述了我无法弄清楚的内容。 has_one :etho 在 EthosController#edit 上为 #<0x000001032c4b70>
    【解决方案2】:

    您可以通过在 has_one 关联上明确指定 class_name 来继续使用 ethos 复数名称:

    class User < ActiveRecord::Base
      has_many :jobs
      has_one  :ethos, class_name: 'Ethos' 
    

    此答案提供了更多详细信息:https://stackoverflow.com/a/6604247/37966

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      相关资源
      最近更新 更多