我有一个项目代码
Class Task < ActiveModel::Base
belongs_to :project, inverse_of: :tasks
attr_accessible :name
end
Class Project < ActiveModel::Base
has_many :tasks, inverse_of: :project
def method1
tasks.each do |v|
puts v.name
end
end
end
但它总是抱怨未定义的局部变量或方法“任务”; 我对rails上的ruby很新,所以我对它很困惑,因为我看到别人的代码使用类似的方式来调用任务。谁能解释一下?非常感谢你!
答案 0 :(得分:0)
Class Task < ActiveModel::Base
belongs_to :project, inverse_of: :tasks
attr_accessible :name
end
Class Project < ActiveModel::Base
has_many :tasks, inverse_of: :project
def method1
tasks.each do |v|
puts v.name
end
end
end
答案 1 :(得分:0)
如果你改变
是否有用def method1
tasks.each do |v|
puts v.name
end
到
def method1
self.tasks.each do |v|
puts v.name
end
答案 2 :(得分:0)
在这种情况下,您不需要inverse_of
选项。同样在使用self.attribute
来调用对象属性的方法中。所以你的代码应该是这样的。要使用您的任务模型,还应该有列project_id
,其中可以存储关联项目的ID。如果符合这些条件,它应该有效。
task.rb
belongs_to :project
project.rb
has_many :tasks