Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-将“U重定向到控制器中的错误-”;页面不是';t正确重定向“&引用;_Ruby On Rails_Redirect_Controller - Fatal编程技术网

Ruby on rails Rails-将“U重定向到控制器中的错误-”;页面不是';t正确重定向“&引用;

Ruby on rails Rails-将“U重定向到控制器中的错误-”;页面不是';t正确重定向“&引用;,ruby-on-rails,redirect,controller,Ruby On Rails,Redirect,Controller,在学习Rails的过程中,请原谅我的noob问题 我想做的是: 有一个text_field_标记,允许用户输入项目id。然后我想获取该值并将其用作url中的参数。 前任。 用户在文本框中键入“4Qe6”,然后单击提交。然后页面导航到“trckr.net/tracker/track/4Qe6” 以下是我表格的代码: <h1>Tracker#index</h1> <p>This is the landing page</p> <p> &

在学习Rails的过程中,请原谅我的noob问题

我想做的是: 有一个text_field_标记,允许用户输入项目id。然后我想获取该值并将其用作url中的参数。 前任。 用户在文本框中键入“4Qe6”,然后单击提交。然后页面导航到“trckr.net/tracker/track/4Qe6”

以下是我表格的代码:

<h1>Tracker#index</h1>
<p>This is the landing page</p>
<p>
  <u> Track an item: </u>
  <%= form_tag(:action => 'track') do %>
    Item ID: <%= text_field_tag(:id) %>

    <%= submit_tag('Track Item') %>
  <% end %>
</p>
如果使用不同的操作,则无法使用在控制器中设置的实例变量

新控制器代码:

  def track
    puts "navigating to track view"
  end

  #redirects to track after retrieving the url parameters
  #want a url parameter so users can link to the page
  def track_helper
    @id = params[:id]
    redirect_to "/tracker/track/#{@id}"
  end
但是无法访问轨迹视图@id:

<h1>Tracker#track</h1>
<p>This page will be used to view an items details</p>
<p><b>Item id: <%= @id %> </b></p>

<%= link_to("Back to index" , {:action => 'index'}) %>

我想这是因为重定向路径由发送此请求的同一操作(和控制器)处理。您可以为它创建一个新操作,也可以将其路由到另一个处理程序。

因此,这修复了错误。但是现在我无法访问重定向页面上的实例变量。我用新评论编辑了我的帖子。回答了我自己的问题。谢谢
Calvins-Air:trckr Calvino$ rake routes
root  /                                      tracker#index
      /:controller(/:action(/:id))(.:format) :controller#:action
  def track
    puts "navigating to track view"
  end

  #redirects to track after retrieving the url parameters
  #want a url parameter so users can link to the page
  def track_helper
    @id = params[:id]
    redirect_to "/tracker/track/#{@id}"
  end
<h1>Tracker#track</h1>
<p>This page will be used to view an items details</p>
<p><b>Item id: <%= @id %> </b></p>

<%= link_to("Back to index" , {:action => 'index'}) %>
 def track
    puts "navigating to track view"
    @id = params[:id]
  end