Ruby on rails 参数散列对控制器方法不可用,但在视图中可见

Ruby on rails 参数散列对控制器方法不可用,但在视图中可见,ruby-on-rails,twitter-bootstrap,Ruby On Rails,Twitter Bootstrap,我正在Rails 4应用程序中使用Twitter引导的导航栏搜索框。我的表单如下所示: <form class="navbar-form navbar-right" action="/search" method="get" role="search"> <div class="form-group"> <input type="text" class="form-control" placeholder="know what you want?"

我正在Rails 4应用程序中使用Twitter引导的导航栏搜索框。我的表单如下所示:

<form class="navbar-form navbar-right" action="/search" method="get" role="search">
   <div class="form-group">
      <input type="text" class="form-control" placeholder="know what you want?" name="q">
   </div>
   <button type="submit" class="btn btn-default">find it!</button>
</form>
我的看法是:

<%= @temp %>
当我填写文本框并单击提交时,url会发生变化,我可以看到如下查询字符串:

http://localhost:3000/search?q=blah
问题是,@temp在视图中显示时是一个空变量

在视图中执行此操作时:

<%= params.inspect %>

在Rails 4中,您必须允许您的参数

顺便说一句,您应该将路由语法更改为:

get "search" => "dynamic_pages#search"

我唯一能建议的是,
param
可能在控制器中可用;也许
@temp
是一个保留变量名还是什么

我会立即尝试以下方法:

  • 在控制器中,将变量发送到Rails控制台(以测试其存在性)
  • 尝试调用
    @temp
    其他内容
  • 下面是我要做的:

    #app/controllers/dynamic_pages_controller.rb
    Class DynamicPagesController < ApplicationController
       def search 
          Rails.logger.info(params.inspect())
          @query = params[:q]
       end
    end
    
    #app/controllers/dynamic_pages_controller.rb
    类DynamicPagesController

    这将在Rails日志中输出控制器中的参数,同时为您提供不同的变量名。

    如果有人无意中发现,我通过移动搜索操作解决了这个问题,使其成为dynamic_pages控制器中的第一个方法。

    能否显示控制台的输出?能否发布参数哈希?我已编辑了我的问题以显示控制台的输出。由于某种原因,它不再工作了。如果他直接调用参数,这不应该是一个很强的参数问题。
    Started GET "/search?q=blah" for 127.0.0.1 at 2014-07-25 08:43:43 -0700
    Processing by DynamicPagesController#search as HTML
      Parameters: {"q"=>"blah"}
      Rendered dynamic_pages/search.html.erb within layouts/application (0.1ms)
      Rendered layouts/_shim.html.erb (0.0ms)
      Rendered layouts/_header.html.erb (0.2ms)
      Rendered layouts/_footer.html.erb (0.1ms)
    Completed 200 OK in 22ms (Views: 21.2ms | ActiveRecord: 0.0ms)
    
    get "search" => "dynamic_pages#search"
    
    #app/controllers/dynamic_pages_controller.rb
    Class DynamicPagesController < ApplicationController
       def search 
          Rails.logger.info(params.inspect())
          @query = params[:q]
       end
    end