在两个控制器之间传递数据,但不通过URL作为参数

时间:2013-05-04 13:50:16

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

下面是我的代码

<% if @user.empty? == true %>
  <p> Sorry no data to display</p>
<%else%>
  <% @user.each do |n|%>
   User id = <%=n.id%> <br \>
   User type = <%=n.type%> <br \>
   User name = <%= n.name%> <br \>
   <%= link_to "Good. You can proceed on creating a new", new_user_product_path(current_user)%>
 <%end%>
<%end%>

此代码目前位于searches#index下。现在您可以看到,在显示一组结果后,我希望用户能够创建新产品。但是在创建产品时,我想确保将<%= n.name%>传递给new_user_product_path(current_user)(它的形式)。但不是通过网址。

我要填充的表单字段是

<%= f.hidden_field :user_name%>

那么,我该怎么办?

由于

2 个答案:

答案 0 :(得分:1)

您不需要从搜索索引传递名称,因为您有当前用户参考:

<%= f.hidden_field :user_name, current_user.name %>

这将使用当前用户名的值呈现隐藏的输入。

即使您在用户提交表单后也不需要传递此参数。

如果你这样做,我想是在客户端提供用户名参考,在Javascript中做这样的事情:

alert($('[ name = user_name ]').val());

答案 1 :(得分:1)

我想我找到了解决方案

我刚刚<%=n.name%>发送到<% $name = n.name %>,因为它是一个全局变量,现在可以访问它。