Ruby / Rails - 将参数插入到位于Controller中的查询字符串中

时间:2011-10-21 20:39:03

标签: ruby-on-rails ruby ruby-on-rails-3 query-string

我的视图中有一个link_to,它指向在控制器中动态创建的URL(查询字符串)。

<%= link_to "Search Venue", @venue_search, :target => :blank %>

并且在控制器中我从模型中提取一些属性并在查询中使用这些值来命中雅虎的API和

@event = Event.find(params[:id])
search_values = {
    :api_key => 'xxxxxxxxx',
    :search_text => @event.venue_name,
    :location => @event.venue_zipcode,
    :radius => 100
}
@venue_search = "http://yahooapis.com/rest/?method=venue.search&" + search_values.to_query

到目前为止,一切都很完美。

我想在查询中手动输入更多参数,我只是想知道最佳方向是什么。

有没有办法创建一个表单,我可以使用一些文本字段手动将参数插入查询字符串,并使用提交按钮将URL调用为link_to?

我在想像

这样的东西
<% form_for @venue_search(:city, :state) do |f| %>
  <%= f.text_field :city %>
  <%= f.text_field :state %>
<% end %> 

还有一些如何将这两个新参数添加到查询中然后执行查询

这可能吗?

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您可以使用发送'GET'请求 - 在这种情况下,参数将放在查询中:

<% form_for @venue_search, :method => :get do |f| %>
  <%= f.text_field :city %>
  <%= f.text_field :state %>
<% end %>

希望对你有所帮助。