我在 _form.html.erb 中有这个:
<%if current_user.role_id == 1 %>
<div class="combo_box">
<%= f.label :subscriber %>
<%= f.collection_select(:user_id, User.all,:id,:name,{:include_blank=>false}, :class => 'styled') %>
</div>
<div class="combo_box">
<%= f.label :group %>
<%= f.grouped_collection_select(:group_id, User.all,:support_agent_groups,:name,:id,:name, {:prompt => "-- Select a group --"}, :class => 'styled') %>
</div>
<div class="combo_box">
<%= f.label :role %>
<%= f.collection_select(:role_id, Role.all,:id,:name,{:include_blank=>false}, {:class => 'styled'}) %>
</div>
<div class="combo_box">
<%= f.label :subscription %>
<%= f.collection_select(:subscription_id, Subscription.all,:id,:name, {:prompt => "-- Select a subscription --"}, {:class=>'styled'}) %>
</div>
<% elsif current_user.role_id == 6 && @user.role_id != 6 %>
<%= f.hidden_field :user_id, :value => current_user.id %>
<%= f.hidden_field :subscription_id, :value => current_user.subscription_id %>
<div class="combo_box">
<%= f.label :group %>
<%= f.collection_select(:group_id, SupportAgentGroup.where(:user_id => current_user.id),:id,:name, {:prompt => "-- Select a group --"}, :class => 'styled') %>
</div>
<div class="combo_box">
<%= f.label :role %>
<%= f.collection_select(:role_id, Role.where('id <> ?', 1).where('id <> ?', 6),:id,:name,{:include_blank=>false}, {:class => 'styled'}) %>
</div>
<% elsif current_user.role_id == 6 %>
<%= f.hidden_field :user_id, :value => current_user.id %>
<%= f.hidden_field :role_id, :value => current_user.role_id %>
<%= f.hidden_field :subscription_id, :value => current_user.subscription_id %>
<div class="combo_box">
<%= f.label :group %>
<%= f.collection_select(:group_id, SupportAgentGroup.where(:user_id => current_user.id),:id,:name, {:prompt => "-- Select a group --"}, :class => 'styled') %>
</div>
<% else %>
<%= f.hidden_field :user_id, :value => current_user.user.id %>
<%= f.hidden_field :group_id, :value => current_user.group_id %>
<%= f.hidden_field :subscription_id, :value => current_user.user.subscription_id %>
<%= f.hidden_field :role_id, :value => current_user.role_id %>
<% end %>
我可以在浏览器中使用 firebug 选项在检查元素上查看每个隐藏文件的值
<input id="user_user_id" type="hidden" value="2" name="user[user_id]" />
我可以将值更改2
为100/200/....
并在提交时发布新值100/200/...
以保存到数据库并保存在数据库中。
我是否需要检查视图中的所有条件以及控制器中的所有条件以找到合适的默认值..或使用 hidden_filed 解决此安全问题的任何选项。
谢谢你的帮助...