Rails 3 - 在控制器的更新中使用表单参数?

时间:2010-10-14 19:16:06

标签: ruby-on-rails ruby-on-rails-3

我有以下表格:

<%=form_for [:project, @permission], :url => { :action => "update" } do |f| %>
 <% roles = Role.all %>
 Role: <%= f.collection_select :role_id, roles, :id, :name, :prompt => true %> 

 <%=f.submit "Send Request" %>
 <%=f.hidden_field :user_id %>
<% end %>

在我的控制器中我有:

def update

@permission = Permission.find_by_user_id(params[:user_id])
.
.
.

**我想要做的是更新role_id ,,,所以我需要上面的内容来查找权限记录...问题是,,, params [:user_id]是否会返回null?

我错过了什么吗?感谢

更新

这是错误和请求参数,它显示了vars在哪里?

于2010年10月14日星期四12:17:12 -0700开始发布“/ projects / 3 / permissions / useronproject”for 127.0.0.1 由PermissionsController处理#update为HTML 参数:{“commit”=&gt;“发送请求”,“authenticity_token”=&gt;“KJ2C20MzTJ8VQV0NiNzOr357QKV5hWjeuazOBcS5iPU =”,“utf8”=&gt;“✓”,“id”=&gt;“useronproject”,“permission”=&gt; ; {“role_id”=&gt;“1”,“user_id”=&gt;“11”},“project_id”=&gt;“3”}

用户加载(0.3ms)SELECT“users”。* FROM“users”WHERE(“users”。“id”= 1)LIMIT 1

权限加载(0.1ms)SELECT“permissions”。* FROM“permissions”WHERE(“permissions”。“user_id”IS NULL)LIMIT 1

看 - user_id是NULL?

1 个答案:

答案 0 :(得分:2)

user_id进一步低于params哈希。尝试:

params[:permission][:user_id]