我有一个简单的应用程序。该应用程序的一部分是一个简单的搜索功能,它搜索数据库并将参数发送到“显示”操作。
现在该搜索字段位于“索引”视图中。
但是,它没有显示索引视图......它会自动尝试将我发送到
localhost:3000/zips/1/3/13 # <~ 我假设它正在选择所有并试图将其重定向到显示操作?
这是控制器的操作
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 %>
如何告诉索引操作“等待”,直到我提交表单并现在执行“选择 *”并传递它?
我想要的行为是我希望显示索引页面,并且仅在提交表单时将参数传递给“显示”操作
另外,这是我的模型文件
def self.search(search)
if search
find(:all, :conditions => ['zip LIKE ?', "%#{search}%"])
else
find(:all)
end
end
我在 rails 4 上运行 ruby 1.9
我是 Rails 新手(以及一般的 OOP),所以任何帮助都会很棒!