0

我有一个简单的应用程序。该应用程序的一部分是一个简单的搜索功能,它搜索数据库并将参数发送到“显示”操作。

现在该搜索字段位于“索引”视图中。

但是,它没有显示索引视图......它会自动尝试将我发送到

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&#146;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),所以任何帮助都会很棒!

4

1 回答 1

0

你有redirect_to zip_path @zipswhich 使用showaction when@zips.blank?为 false。我会看看哪里@zips.blank?是假的

于 2013-08-06T19:24:57.553 回答