我的索引页面中有一个form_tag,用于对我的模型执行搜索。
<%= form_tag( :method => "get", :class => "form-inline") do %>
在表单中,我有两个提交按钮,应该指向两个不同的操作(显示搜索结果的两个不同视图。
<div class="btn-group">
<%= submit_tag("View1", :class => 'btn btn btn-success', :name => 'view1') %>
</div>
<div class="btn-group">
<%= submit_tag("View2", :class => 'btn btn btn-primary', :name => 'view2') %>
</div>
单击view1提交时,我希望它指向view1操作并加载与视图2相同的页面。
所以在我的控制器中我做了以下事情:
def index
if params[:view1]
render :action => 'view1'
elsif params[:view2]
render :action => 'view2'
end
respond_to do |format|
format.html #{ render :layout => false }# index.html.erb
end
end
但是当我提交表单时,它显然会重定向到保存操作。构建的网址为http://0.0.0.0:3000/posts?class=form-inline&method=get
,而不是http://0.0.0.0:3000/view1?utf8=%E2%9C%93.....
我在这里缺少什么?
答案 0 :(得分:0)
def index
if params[:view1]
@action = '/some/url'
else
@action = '/some/url'
end
end
更改表单中的网址
<%= form_for('',url: view1) do |f| %>
--- fileds--
<%= submit_tag('conditional text') %>
<% end %>
答案 1 :(得分:0)
让这个工作
<%= form_tag(root_path, :method => "get", :class => "form-inline") do %>
<%= submit_tag("view1", :class => 'btn btn btn-success', :name => 'view1') %>
<%= submit_tag("view2", :class => 'btn btn btn-success', :name => 'view2') %>
if params[:view1]
render :action => :view1
elsif params[:view2]
render :action => :view2
end