我想向视图控制器传递一个在触发成功创建事件后可以使用的参数。现在,在创建活动结束时,我有以下内容:
respond_to do |format|
if @link.save
format.html { redirect_to @link, :notice => 'Link was successfully created.', :first => 'true' }
else
format.html { render action: "new" }
end
end
我试图在第3行中传递'first'参数,但我要么在视图页面上没有正确调用它,要么我在这里没有正确设置它。下面是我用来尝试在视图页面上调用它的代码:
params[:first]
答案 0 :(得分:0)
在这种情况下,您可以使用实例变量。像这样创建一个实例变量@first。
@first = params[:first]
在您的视图文件中使用此功能。
<%= @first.attributes %>
答案 1 :(得分:0)
我认为Quatz的答案是行不通的。发送redirect_to后,实例变量将不可用,这是因为redirect_to实际上将302返回到具有重定向Location头的浏览器,以便重定向浏览器。因此,在先前请求中创建的实例根本不可用。
您的问题可能有两种解决方案:
将redirect_to修改为类似
的内容redirect_to link_path(@ link,:first =&gt;'true'),:notice =&gt; '链接已成功创建。'}
使用命名路由可以传入参数。