我的控制器中有以下内容:
def index
@games = Game.gamsearch(params[:gamsearch])
end
def consearch
@games = Game.consearch(params[:consearch])
end
def gensearch
@games = Game.gensearch(params[:gensearch])
end
我认为以下内容:
<div id="sidehead"><h2><%= t('.search') %></h2></div>
<div id="searching" >
<%= form_tag games_path, :controller => 'games', :action => 'gamsearch', :method => 'get' do %>
<%= text_field_tag :gamsearch, params[:gamsearch] %>
<%= submit_tag t('.searchb'), :game_name => nil %>
<% end %>
</div>
<div style="clear: both;"/>
<div id="sidehead"><h2><%= t('.search') %></h2></div>
<div id="searching" >
<%= form_tag games_path, :controller => 'games', :action => 'gensearch', :method => 'get' do %>
<%= text_field_tag :gensearch, params[:gensearch] %>
<%= submit_tag t('.searchb'), :game_name => nil %>
<% end %>
</div>
<div style="clear: both;"/>
<div id="sidehead"><h2><%= t('.search') %></h2></div>
<div id="searching" >
<%= form_tag games_path, :controller => 'games', :action => 'consearch', :method => 'get' do %>
<%= text_field_tag :consearch, params[:consearch] %>
<%= submit_tag t('.searchb'), :game_name => nil %>
<% end %>
</div>
现在第一个搜索工作正常,并查看它与索引中的日志连接的日志。但是后两次搜索没有做任何事情,通过查看日志,他们没有连接到他们相关的con和gensearch。有任何想法吗?是否可以指定控制器中使用哪种方法?
resources :games do
post 'email', :on => :member
post 'gensearch', :on => :member
post 'consearch', :on => :member
end
答案 0 :(得分:0)
form_tag games_path, :controller => 'games', :action => 'consearch', :method => 'get'
form_tag
的第一个参数games_path
正在设置网址选项。你的哈希的其余部分被options
param吞噬了。
我不确定你的路线是什么样的,但你应该能够以冗长的方式做到这一点。
form_tag( {:controller => 'games', :action => 'consearch'}, {:method => 'get'} )
请注意,您在路线中使用post
映射资源,但在表单中使用get
。这将导致你的路径助手无法正常工作。