如何在ruby轨道上将位置值存储为cookie

时间:2016-03-17 09:56:05

标签: ruby ruby-on-rails-3 cookies

我需要将选定的位置值存储为cookie值。

我有一个位置和属性表,我从位置表中提取并显示所有位置,因此当用户点击此位置时,它应搜索与该位置相关的所有属性。

现在正在进行搜索,但问题是如何将所选位置值存储为Cookie值。

我的布局页面视图。

<%= form_tag location_search_path, :method=>'get' do %> 
<%= select_tag :location_id, options_from_collection_for_select(Location.all, :id, :name, params[:q]), :class=>"btn btn-primary dropdown-toggle" ,:onchange=>'this.form.submit()'%><br>
<% end %>

我的搜索控制器。

def location_search
    location=params[:location_id]
    @location = Location.find(location).name if params[:location_id].present?
    @property = Property.where(['location LIKE ?  AND status=?', "%#{@location}%", '3']).all
end

请帮忙。任何帮助都是值得赞赏的。

1 个答案:

答案 0 :(得分:2)

您可以使用cookies[:cookie_name] = value进行设置。因此,在您的情况下,您可能希望在控制器中使用location_search方法中的类似内容:

def location_search
  location=params[:location_id]
  @location = Location.find(location).name if params[:location_id].present?
  @property = Property.where(['location LIKE ?  AND status=?', "%#{@location}%", '3']).all

  cookies[:location] = @location
end

您可以在此处详细了解导轨中的Cookie:http://guides.rubyonrails.org/action_controller_overview.html#cookies