【发布时间】:2015-08-23 16:30:01
【问题描述】:
我有两种形式导致一个控制器动作:
<%= form_tag some_action_path do %>
<%= slect_tag 'foo[]', options_for_select([
["Nothing", nil],
["wal1", "wal1"],
["wal2", "wal2"]]) %>
<%= submit_tag "Search" %>
<% end %>
<%= form_tag some_action_path do %>
<%= check_box_tag 'foo[]', "wal1" %>
<%= check_box_tag 'foo[]', "wal2" %>
<%= submit_tag "Search" %>
<% end %>
我的问题是,当我在 select_tag 中选择“Nothing”时,我得到 [""],另一方面,当我提交第二个表单时没有选择任何复选框,我得到 nil。这让我对我的搜索功能感到头疼。因为它必须看起来像这样:
def search_action(foo)
if foo.nil?
Obj.all
elsif foo.present? && foo[0].blank?
Obj.all
elsif foo.present? && foo[0].pesent?
Obj.where(foo: foo)
end
end
上面的函数无关紧要,我只是想说明这两种形式之间的差异输出如何使我的搜索操作复杂化。
我的问题:
有没有办法从“select_tag”表单中返回 nil ?或者我愚蠢地将两种形式引导到一个控制器操作和一个搜索方法,我应该编写两个操作,两个搜索操作导致一个视图。 :D
【问题讨论】:
标签: ruby-on-rails forms