我有一个可以与活动相关联的地方列表,我想使用此搜索表单过滤这些结果,以查找地点的城市。任何帮助,将不胜感激。 我收到以下错误:
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 %>
答案 0 :(得分:1)
你的params [:id]似乎是零。检查您的网页网址