如何在rails 4中使用虚拟属性(getter,setter),因为' attr_accessible'除去。
我遇到了问题,这里
def tags_list
@tags = self.tags.collect(&:name).join(', ')
end
尝试更新/创建时,我可以达到上述方法,但无法达到下面的设置器。
def tags_list=(tags)
@tags = tags
end
答案 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