我有一个简单的应用程序。该应用程序的一部分是一个简单的搜索功能,它搜索数据库并将参数发送到“show”操作。
现在搜索字段位于“索引”视图中。
但是,而不是显示的索引视图......它会自动尝试将我发送到
localhost:3000 / zips / 1/3/13#<〜我假设它正在选择所有并尝试将其重定向到show动作?
这是我在控制器中的动作
def index
@zips = Zip.search(params[:search])
if @zips.blank?
redirect_to zips_path, :notice => "Zipcode #{params[:search]} is not eligible for Local Delivery"
else
redirect_to zip_path @zips
end
end
这是我的索引视图
<h1>
Pick-up/Delivery Eligibility
</h1>
<h3>
Based on U.S. Zipcode, Canadian Postal Code
</h3>
<p class="el">
To find out if you qualify for 4over’s local delivery service,
please enter your <nobr>U.S. 5 digit zip code, or</nobr> your
<nobr>Canadian 6 character Postal Code,</nobr> then click submit.
<%= form_tag zips_path, :method => "get" do %>
<p><%= text_field_tag :search, params[:search] %> | <%= submit_tag "Search", :name => nil %></p>
<% end %>
在提交表单之前,我如何告诉索引操作“等待”,现在执行“select *”并传递它?
我想要的行为是我想要显示索引页面,并且只在提交表单时将参数传递给“show”操作
此外,这是我的模型文件
def self.search(search)
if search
find(:all, :conditions => ['zip LIKE ?', "%#{search}%"])
else
find(:all)
end
end
我在rails 4上运行ruby 1.9
我是rails(和OOP)的新手,所以任何帮助都会很棒!
答案 0 :(得分:0)
当redirect_to zip_path @zips
为false时,您show
使用@zips.blank?
操作。我会看一下@zips.blank?
为假的情况