在自定义视图中按城市搜索

时间:2014-11-15 14:19:55

标签: ruby-on-rails

我有一个可以与活动相关联的地方列表,我想使用此搜索表单过滤这些结果,以查找地点的城市。任何帮助,将不胜感激。 我收到以下错误:

Couldn't find Activity without an ID

在我看来(pages / associate_place_to_activity.html.erb):

<%= form_tag pages_associate_place_to_activity_path(:id => @activity.id), :method => 'get' do %>
        <p>
          <%= text_field_tag :search, params[:search] %>
          <%= submit_tag "Search", :name => nil %>
        </p>
    <% end %>

在我的控制器(pages_controller)

def associate_place_to_activity
    @activity = Activity.find(params[:id])
    @places = Place.search(params[:search])
  end

在我的模型中(place.rb)

def self.search(search)
    if search
      self.where("city like ?", "%#{search}%")
    else
      self.all
    end
end

更新: 如果我添加一个text_field_tag,对于param [:id],它会出现一个新的文本字段,用“@ activity.id”自动填充自己,当我点击提交它有效时,现在唯一的问题是我有一个我不需要的文字字段:/ 顺便说一句,我有这个的视图是pages_associate_place_to_activity视图,所以我重定向到自己。

    <%= form_tag pages_associate_place_to_activity_path(:id => @activity.id ), :method => 'get' do %>
        <p>
          <%= text_field_tag :search, params[:search] %>
          <%= text_field_tag :id, params[:id] %>
          <%= submit_tag "Search" %>
        </p>
    <% end %>

1 个答案:

答案 0 :(得分:1)

你的params [:id]似乎是零。检查您的网页网址