在类rails中调用Class对象

时间:2014-01-15 07:52:35

标签: ruby-on-rails

我有一个项目代码

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很新,所以我对它很困惑,因为我看到别人的代码使用类似的方式来调用任务。谁能解释一下?非常感谢你!

3 个答案:

答案 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