【问题标题】:redirect_to with params. How to pass them to my view?带参数的redirect_to。如何将它们传递给我的视图?
【发布时间】:2012-05-23 16:22:19
【问题描述】:

我是 Rails 新手。我在操作中使用了redirect_toparams,但现在我不知道如何在我的视图中显示这些params

【问题讨论】:

  • 请在此处发布您的重定向声明代码。
  • user = params[:name] redirect_to :controller => 'private', :action => 'index', :user => user

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


【解决方案1】:

试试这个变种:

  • redirect_to controller: 'thing', action: 'edit', id: 3, something: 'else'
  • redirect_to thing_path(@thing, foo: params[:foo])

另外,这个link should be helpful for you

【讨论】:

  • 如果您想从上一页获取控制器和动作名称,请使用Rails.application.routes.recognize_path(request.referrer)。它将输出=> {:controller => "posts", :action => "show"}
【解决方案2】:

实际上,如果您发送了带有重定向的内容 - 您已经像 GET 参数一样传递了它。在这种情况下,您可以通过 params 哈希访问它们。

如果你像这样重定向:

redirect_to :controller => 'users', :action => 'edit', :id => 1, :param_a => 1, :param_b => 2

你有这样的网址:

http://localhost:3000/users/1/edit?param_a=1&param_b=2

所以你可以在你的视图中通过 params hash 访问:param_a:param_b

<%= params[:param_a] %>
<%= params[:param_b] %>

【讨论】:

  • 好的,现在可以了。但是如何从我的网址中隐藏这些信息?
  • 实际上你不能,因为它们是 GET 参数。
  • 还有其他方法可以将我的参数传递给视图吗??
  • 请告诉更多,你必须在你的视图中显示什么,这样我才能深入理解你的问题。如果您可以在此处发布您的视图和您要重定向到的控制器方法,那就更好了。此外,您在重定向 URL 中发送的数据也很重要。
  • 如果此信息很重要,您可以将其存储在这样的会话中:session[:my_critical_info] = [param1, param2]。 session 像哈希一样工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
  • 2011-12-09
  • 2010-12-26
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
  • 2012-03-26
相关资源
最近更新 更多