Ruby on rails 3 在视图和控制器之间传递参数ruby 1.8.7

Ruby on rails 3 在视图和控制器之间传递参数ruby 1.8.7,ruby-on-rails-3,controller,params,Ruby On Rails 3,Controller,Params,我将此表单嵌套在视图“A”中 <div> <%if current_user%> <%=form_for(ModelB.new) do |f|%> <%if (params[:param_to_check].present?)%> <%f.hidden_field "param1",:value=> @modelA.id%> <%f.hidden_field "param

我将此表单嵌套在视图“A”中

<div>
<%if current_user%> 
    <%=form_for(ModelB.new) do |f|%>
      <%if (params[:param_to_check].present?)%>
        <%f.hidden_field "param1",:value=> @modelA.id%>
        <%f.hidden_field "param2",:value=> current_user.id%>
      <%end%>
    render button
    <%end%>
<%else%>
    render other butotn
<%end%>

</div>
当我查看传递给Bs_控制器的参数时,我看到:

Parameters: {"authenticity_token"=>"some_hash=", "utf8"=>"✓", "y"=>"42", "x"=>"144"}
我需要把隐藏区域的箱子传给Bs_控制器

atention的thx:)


要点如下:

param1
param2
添加到允许的参数列表中。在控制器中,您应该具有以下内容:

def modela_params
  params.require(:modela).permit(:x, :y, :param1, :param2)
end

我做了一些评论,我会继续,把它们变成一个答案

有三种可能。假设不是打字错误,您当前不会将隐藏字段输出到HTML。您需要使用
来输出结果

<%= f.hidden_field "param1",:value=> @modelA.id %>
<%= f.hidden_field "param2",:value=> current_user.id %>
@modelA.id%>
当前用户id%>

这可能就是问题所在。否则,我猜当前用户或参数[:param\u to\u check]为零。

是否设置了当前用户?params[:param_to_check]是否有值?在呈现的HTML中是否有隐藏字段?
@modelA.id%>
可能应该是
@modelA.id%>
,正如您所看到的,它不会呈现。它用Rails 3标记,并且没有提及强参数,所以可能不是这样。谢谢,我注意到在阅读您的答案之前,哈哈。当我回来删除的时候,我看到了你的答案,决定把它留给像我这样漫不经心的人:)
<%= f.hidden_field "param1",:value=> @modelA.id %>
<%= f.hidden_field "param2",:value=> current_user.id %>