rails 4中的虚拟属性

时间:2013-04-19 16:18:29

标签: ruby-on-rails ruby-on-rails-4 attr-accessor virtual-attribute

如何在rails 4中使用虚拟属性(getter,setter),因为' attr_accessible'除去。

我遇到了问题,这里

  def tags_list
    @tags = self.tags.collect(&:name).join(', ')
  end

尝试更新/创建时,我可以达到上述方法,但无法达到下面的设置器。

  def tags_list=(tags)
    @tags = tags
  end

1 个答案:

答案 0 :(得分:13)

在Rails 4中使用虚拟属性与使用attr_accessible几乎相同。您只需将虚拟属性添加到控制器中允许的参数(而不是attr_accessible),然后像往常一样在模型中添加getter和setter方法。

# your_controller.rb
private

def your_model_params
  params.require(:your_model_name).permit(:tags_list)
end