【问题标题】:Association between models not working模型之间的关联不起作用
【发布时间】:2012-09-04 16:48:39
【问题描述】:

我已经在两个模型之间建立了 has_and_belongs_to_many 关联。我需要从一个模型访问另一个模型中的方法的属性。现在我的代码看起来像这样,但我收到一条错误消息,提示“未定义的局部变量 'model1_id'”

Model_2.rb

Class Model_2 < ActiveRecord:: Base
...
has_and_belongs_to_many :model_1

def some_method
   attr_1 * Model_1.find(model_1_id).attr_I_need
end

我错过了什么?谢谢!

【问题讨论】:

    标签: ruby-on-rails-3 methods has-and-belongs-to-many


    【解决方案1】:

    首先,你应该写

     has_and_belongs_to_many :model_1s 
    

    在Model_2中如果你的模型名称是Model_1,仔细看model_1s中的最后一个s,lly写

     has_and_belongs_to_many :model_2s
    

    在 Model_1 中

    看来,您的本地方法找不到 model_1_id 变量。

    你在哪里定义了它??

    【讨论】:

    • 对,好吧,我为这两个模型都设置了复数“s”。但如果我在某处定义了 ID,我不确定你的意思。我在哪里定义它,在迁移发生时它不是已经由模型创建了吗?
    • 不,您必须在您的情况下自己在连接表中创建。您是否为此创建了连接表? {实际上我被要求检查您传递给本地方法的本地变量,但您还需要创建连接表}
    • 哦,是的,我已经创建了连接表,所以它得到了 Model_1_id 和 Model_2_id 以及它们的索引,但仍然没有运气
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多