【问题标题】:Rails 3 - Using form Params in a controller's Update?Rails 3 - 在控制器的更新中使用表单参数?
【发布时间】:2011-04-25 14:27:14
【问题描述】:

我有以下表格:

<%=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 %>

在我的控制器中,我有:

定义更新

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

结束

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

我错过了什么吗?谢谢

更新

这里是错误和请求参数,显示变量在那里?

于 2010 年 10 月 14 日星期四 12:17:12 -0700 为 127.0.0.1 开始 POST "/projects/3/permissions/useronproject" PermissionsController#update 作为 HTML 处理 参数:{"commit"=>"发送请求", "authenticity_token"=>"KJ2C20MzTJ8VQV0NiNzOr357QKV5hWjeuazOBcS5iPU=", "utf8"=>"✓", "id"=>"useronproject", "permission"=>{"role_id" =>"1", "user_id"=>"11"}, "project_id"=>"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 吗?

【问题讨论】:

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


    【解决方案1】:

    user_id 位于 params 散列的下方。试试:

    params[:permission][:user_id]
    

    【讨论】:

    • 做到了。谢谢!帮助我理解为什么会这样的奖励积分?为什么它在参数哈希下?谢谢
    • f.hidden_​​field 自动绑定到权限对象。如果 user_id 不属于权限对象,则不要使用 f 对象,只需使用普通的 hidden_​​field 助手即可。
    • 顺便说一句,使用您的日志文件,它告诉我们这一点。请注意,user_id 在“permission”指向的括号内。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多