2012-04-15 64 views
0

我想通过has_many关联对与另一个模型(:查询)相关的模型属性(:test)具有只读访问权限。当我在方法中使用关系回调时出错

我可以在创建并关联新的查询时获取关联的测试对象,但我无法使用关联的测试对象:`before_create'方法中的测试属性。

从应该是什么我读的API documentation我能够使用联想法(@test = @query.test.whatever)使用“无所谓”属性,但我收到以下错误,当我尝试运行代码:private method 'test' called for nil:NilClass

:查询有关:测试在belongs_to关系......

我已经试过@test = @ query.test.build实例测试对象在我的方法,但也不管用。

+0

你可以发布两个模型的代码吗? – 2012-04-15 17:18:11

回答

1

你只是得到一个名称冲突。 Ruby中的每个对象都有其私有方法test

+0

这就是我想知道的......欢呼声。 – 2012-04-15 17:26:36

+0

我将“test”模型重命名为“testcase”,我仍然得到相同的错误。 '私有方法'testcase'调用nil:NilClass'。很烦人。我确信我只是在做一些愚蠢的事情,但我无法弄清楚它...... – 2012-04-16 15:18:39

+0

重命名模型是不够的。你必须重新命名你的关联('belongs_to:testcase')。在你的数据库中还有一个名为'tests'的表。你也必须解决这个问题(最简单的方法:在模型中写入'set_table_name:testcases')。 – jdoe 2012-04-16 15:36:27

相关问题