阻止用户编辑Rails中表中的某些列

时间:2012-03-31 12:56:08

标签: ruby-on-rails activerecord

我有一个ActiveRecord约会模型,其中包括主题和时间属性。我想允许用户能够修改时间。但是我希望在填充此字段后阻止他们修改主题。

我应该如何在Rails中干净利落地进行此操作? 谢谢。

2 个答案:

答案 0 :(得分:0)

如果您在新视图和编辑视图之间使用共享部分,则可以在appointment.is_new_record?返回true时有条件地输出相关列的编辑字段。否则,只需将它们渲染为文本。

答案 1 :(得分:0)

你应该在你的模型中使用attr_accessible:http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html#method-i-attr_accessible

这意味着在创建时,您必须手动设置值,但在更新时,您可以使用质量分配,并且将忽略attr_accessible列表中不存在的任何值。