首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Activerecord批量分配到虚拟属性

Activerecord批量分配到虚拟属性
EN

Stack Overflow用户
提问于 2011-02-18 01:17:55
回答 1查看 592关注 0票数 2

我发布了以下数据:

代码语言:javascript
复制
{"commit"=>"Create", "conversation"=>{... , "watchers_ids"=>["2", "3", "4", "5", ...]}}

添加到以下操作

代码语言:javascript
复制
def create
  @conversation = @current_project.conversations.new(params[:conversation]) 
  ...
end

和下面的类

代码语言:javascript
复制
class Conversation < RoleRecord
  include Watchable
end

使用此模块

代码语言:javascript
复制
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

但是,质量赋值不适用于虚拟属性。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2011-02-18 04:34:32

这里缺少一些代码..。

如果你有一个has_and_belongs_to_many :watchers,你应该能够分配watcher_ids,而不需要做这个自定义模块的事情。

如果你不能这样做,那么这个属性就会被模型中的一些attr_protected或者更可能的attr_accessible调用所保护。您可以手动设置:

代码语言:javascript
复制
@conversation.watcher_ids = params[:conversation][:watcher_ids]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5032243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档