我正在閱讀Rails 3 In Action。這本書創建了一個應用程序,可以創建項目,併爲每個項目創建票證。它創建3種型號:一行Ruby代碼,我不明白,給我一個大規模分配錯誤
項目:
class Project < ActiveRecord::Base
attr_accessible :name
validates :name, presence: true
has_many :tickets, :dependent => :destroy
end
票:
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
現在,當我下面的行添加到裏面創建行動tickets_controller:
@ticket = @project.tickets.build(params[:ticket].merge!(:user => current_user))
我收到此錯誤Can't mass-assign protected attributes: user
。現在我不明白什麼合併!正在做,爲什麼:用戶被傳入或爲什麼我得到錯誤。我知道通常我必須將mass-assignment屬性包含在attr_accessible:方法中。但是這次屬性是一個類,所以我不知道如何處理這個問題。
幫助, 邁克
他是新的。給他休息一下 – ctilley79