0

我正在使用 Meta-search Gem 通过以下控制器操作从表中搜索。我正在使用 Rails 版本 3.2.9。

class FeedEntriesController < ApplicationController
  def index
    @search = FeedEntry.search(params[:is_star])
    @feed_entries = @search.page(params[:page])
    @app_keys = AppKey.all
  end
end

feed_entries 表包含 is_star:boolean 属性。所以,我只想使用or将 hash 参数传递is_star == trueparams[:is_star]from 视图中。我尝试使用以下方式。form_forlink_to

In Views/feed_entries/index.html.erb

<%= link_to "Stared", {:controller => "feed_entries", :action => "index", :is_star => true }%>

但是上面的方法现在已经奏效了,所以我决定以下面的方式使用form_for,

<%= form_for(@is_star) do |f|%>
    <%= f.hidden_field :is_star_is_true %>
    <%= f.submit "Search" %>
<% end %>

但是,没有任何工作,请有人帮我解决这个问题。

4

2 回答 2

1

truefalse当作为字符串传递时,在布尔列中使用时被解析为它们的真实值。这也适用于 0、1、'0' 和 '1'

>> m = Model.new
>> m.active = 'false'
>> m.active? # false
>> m.active = 'true'
>> m.active? # true

知道了这一点,您可以将 'true' 作为hidden_field

<%= f.hidden_field :is_start, value: 'true' %>
于 2013-03-31T12:33:14.817 回答
0

您可以在最终呈现表单的视图中传递父级的值,例如<%=params[:is_start] = 1 %>. 我不确定应用程序的布局是如何设置的。还要确保attr_accessible :is_start

更新:我可能理解错了你的问题。所以也试试这个

<%= f.hidden_field :is_star, value: 'true' %>

或者你可以有一个单选按钮?

<%= f.radio_button :is_star, value: 'true' %>
于 2013-03-31T10:35:46.620 回答