我有一个存档页面,我希望用户能够选择日期并提取在该日期创建的微博。我想我已经接近搞清楚,我只是无法弄清楚如何使用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>
有没有人有任何想法? 谢谢你的帮助。
答案 0 :(得分:0)
来自documentation 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。
答案 1 :(得分:0)
我在视图中使用了form_tag,在文本字段标签中使用了datepicker gem来在表单中创建实时更新。
e.g。
<%= 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]来使用控制器中的选定日期。
e.g。在控制器中:
def archive
@date_search = params[:q]
end
这样的事情对你有用吗?