目前我正在阅读《行动中的铁路第3号》。这本书创建了一个应用程序,人们可以在其中创建项目,每个项目都可以创建票票。它创造了三个模式:
项目:
class Project < ActiveRecord::Base
attr_accessible :name
validates :name, presence: true
has_many :tickets, :dependent => :destroy
end
icket :
class Ticket < ActiveRecord::Base
belongs_to :project
belongs_to :user
attr_accessible :description, :title
validates :title, presence: true
validates :description, presence: true, :length => { :minimum => 10 }
end
用户和用户 :
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me
end
当我在罚单控制器内部的创建动作中添加以下一行:
@ticket = @project.tickets.build(params[:ticket].merge!(:user => current_user))
我得到了这个错误 < code> 无法调用质量指定的保护属性 : 用户 code > 。 现在,我无法真正理解要合并什么! 以及为什么: 用户正在被传递或为什么获取错误。 我知道通常我必须包含 Attr_ accessible: 方法的质分配属性。 但这次属性是一个类, 所以我不知道如何处理这个属性 。
help, mike