0

我有一个存档页面,我希望用户能够选择一个日期并提取在该日期创建的微博。我想我已经接近解决了,我只是无法弄清楚如何使用 date_select 表单设置实例变量。我的控制器中有一个方法,看起来像这样:

def archive
  @date_search = []
end

我现在想将实例变量设置为一个空集,以便以后可以分配它。我对提要的部分内容如下所示:

<ol class="microposts">     
<%= render partial: 'shared/feed_item', collection:Micropost.where("DATE(created_at) = ?", @date_search) %>
</ol>

我可以在控制器中为@date_search 分配一个值,它会显示该日期的帖子,这样似乎可以工作。现在我只需要能够使用表单设置变量。我的日期表格如下所示:

<%= form_for(@date_search) do |f| %>
  <div class="field">       
    <%= f.select_date Date.today, :prefix => :date_search %>
  </div>
  <%= f.submit "Submit", class: "btn btn-lrg btn-primary" %>
<% end %>

但我不工作。也许我使用了错误类型的选择日期表单,因为如果我没有将 f 放在块中 select_date 的前面,表单会显示在视图中,但是当我提交它时没有任何反应。当我输入 f.select_date 我得到这个错误

undefined method 'select_date' for #<ActionView::Helpers::FormBuilder:0x0000010170f3d0>

有没有人有任何想法?谢谢您的帮助。

4

2 回答 2

0

From文档 select_date中没有出现ActionView::Helpers::FormBuilder,所以我会尝试不使用f. 此外,他们将它与日期对象一起使用:

my_date = Time.now + 6.days

# Generates a date select that defaults to the date in my_date (six days after today).
select_date(my_date)

不过我不确定。

或者,也许您想要date_select

于 2013-07-18T06:25:01.760 回答
0

我在视图中使用了 form_tag 并在文本字段标签中使用了 datepicker gem 来在表单中创建实时更新。

例如

<%= form_tag the_controller_path, method: :get do %>

<%= submit_tag("date update") %>

<%= label_tag(:q, "Selected Date") %>

<%= text_field_tag :q, @date_search, :class => 'datepicker' %>

这得到了用户的输入。

@date_search 这里是日期更新时文本框中显示的内容。

然后在方法中使用 params[:q] 在控制器中使用选定的日期。

例如在控制器中:

def archive

    @date_search = params[:q]

end

也许这样的东西对你有用?

于 2013-08-31T05:37:08.233 回答