【问题标题】:Index action redirecting to show action without post索引操作重定向以显示没有发布的操作
【发布时间】:2013-08-06 18:17:29
【问题描述】:

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

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

但是,不是显示索引视图...而是自动尝试将我发送到

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

【问题讨论】:

  • 没什么私人的,但我认为你不明白你在做什么,你应该从 Rails 指南开始。
  • @MichaelSzyndel 没有个人资料!我承认我对自己所做的事情一无所知。我正在工作中进行这些小练习,这样我就可以通过跟踪和错误来学习。我也会和导游一起练习! Vielen 潮湿!

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


【解决方案1】:

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

【讨论】:

  • 感谢您的提示!实际上我得到了它:elsif @zips.count &gt; 1 true我很确定这不是最佳实践......但至少它让我得到了我想要的行为
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
  • 2012-07-04
  • 2014-04-16
  • 2012-03-14
相关资源
最近更新 更多