索引操作重定向以显示没有帖子的操作

时间:2013-08-06 18:17:29

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个简单的应用程序。该应用程序的一部分是一个简单的搜索功能,它搜索数据库并将参数发送到“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&#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 %>

在提交表单之前,我如何告诉索引操作“等待”,现在执行“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)的新手,所以任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

redirect_to zip_path @zips为false时,您show使用@zips.blank?操作。我会看一下@zips.blank?为假的情况