我发布了以下数据:
{"commit"=>"Create", "conversation"=>{... , "watchers_ids"=>["2", "3", "4", "5", ...]}}
执行以下操作
def create
@conversation = @current_project.conversations.new(params[:conversation])
...
end
以下课程
class Conversation < RoleRecord
include Watchable
end
使用此模块
module Watchable
def self.included(model)
model.attr_accessible :watchers_ids
end
def watchers_ids=(ids)
add_watchers( ids )
end
def watchers_ids
...
end
...
end
但是,质量赋值不适用于虚拟属性。有什么想法吗?
答案 0 :(得分:0)
那里缺少代码...
如果您有has_and_belongs_to_many :watchers
,则无需执行此自定义模块即可分配watcher_ids
。
然后,如果您不能这样做,那么该属性受模型中某些attr_protected
或更可能attr_accessible
调用的保护。您可以手动设置:
@conversation.watcher_ids = params[:conversation][:watcher_ids]