我想显示一个表单,其中每个用户可以编辑不同的字段。Rails:可编辑/不可编辑的字段取决于用户权限
目前,代码如下:
<% if can? :update, item %>
` <%= f.text_field :title %>
<% else %>
<%=h f.object.title %>
<% end %>
我可以在一系列帮手(每个字段类型)封装,但我也有在控制器检查用户是否可以更新所有提交的字段(如果恶意用户试图提交他未被授权的字段)。
这种类型的任务在轨道中是否有更清晰的模式?理想情况下,我想在模型中定义这些访问权限,并将这些更改传播到控制器和视图。
编辑:
使用readonly
标签是不是一个可行的选择;它不考虑验证,并用很多CSS替换视图逻辑。不是最好的折衷。
这只是化妆品;这取决于你是否更喜欢编写大量的CSS(将只读类型的控件设置为纯文本样式),还是喜欢在视图中使用一些额外的逻辑。 而且它没有解决控制器端验证问题。 – shmichael 2010-07-05 14:27:26