【发布时间】:2012-08-11 20:42:19
【问题描述】:
我有一个简单的嵌套表单,我正在设置一个带有隐藏字段的嵌套属性:
<%= role_form.hidden_field :company_id, :value => session[:company_id] %>
这里的想法是我通过当前会话变量设置的company_id 将这个嵌套模型(基于角色的权限系统)关联到另一个模型Company。我的问题是用户可以发送请求并使用任意company_id 创建/更新角色并获得对另一家公司帐户的访问权限。
我可以强制嵌套模型属性成为此会话值或验证吗?
我正在考虑创建:
@user = User.new(params[:user])
@user.roles.first.company_id = session[:company_id]
对于更新,我可以做同样的事情。
至于我尝试的验证:
accepts_nested_attributes_for :roles, :limit => 1, :allow_destroy => true , :reject_if => proc { |attributes| attributes['company_id'] != session[:company_id] }
但您似乎无法访问模型中的会话信息。
有人知道我是否可以通过这两种方式做到这一点?
【问题讨论】:
标签: ruby-on-rails-3 nested-attributes