0
这是极其奇怪的。我正在升级一个Rails 2.3.12应用程序,并一遍又一遍地运行这个相同的问题。我被困住了,似乎没有其他任何东西触及它。不能用has_many关联来批量分配受保护的属性并创建
我有两个型号:
class User < ActiveRecord::Base
has_many :logs, :class_name => 'UserLog'
end
和
class UserLog < ActiveRecord::Base
attr_accessor :site_id, :controller, :action, :url, :session
belongs_to :user
validates_presence_of :user
end
然后在另一个控制器我这样做:
def log_user_activity
@current_user.logs.create(:site_id => @site.id, :controller => params[:controller],
:action => params[:action], :url => request.path,
:session => request.session_options[:id]) if @current_user
end
,你可以看到,这是很简单的,但当我打电话给log_user_activity时,我得到这个:
Can't mass-assign protected attributes: site_id, controller, action, url, session
但是,如果我改变我所有的创造或建立这样的:
def log_user_activity
log = @current_user.logs.new
log.site_id = @site.id
log.controller = params[:controller]
log.action = params[:action]
log.url = request.path
log.session = request.session_options[:id]
log.save
end
然后正常工作!?
有没有人看到这个?任何线索?
*在他的代码*中。 –
没有..'attr_accessor'存在..但不是'attr_accessible'.. 2个不同的东西..其中一个是ruby,其他rails具体http://apidock.com/rails/ActiveRecord/Base/attr_accessible/class –
是如果它意味着您的网站的属性现在得到更好的保护,那么它真的是一个“皮塔”吗?这个功能虽然实现起来很麻烦,但实际上最终还是非常有用的。 –