2013-07-18 39 views
0

我有一個存檔頁面,我希望用戶能夠選擇一個日期並提取該日期創建的microposts。我想我近在咫尺,但我無法弄清楚如何用date_select形式設置實例變量。我在我的控制器的方法,看起來是這樣的:如何在Rails中使用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 %> 

但我沒有工作。也許我正在使用錯誤的選擇日期形式,因爲如果我不在塊的select_date前面放置f,那麼表單在視圖中顯示,但是當我提交它時沒有任何反應。當我把f.select_date我得到這個錯誤

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

有沒有人有什麼想法? 感謝您的幫助。

回答

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 

也許這樣的事情會爲你工作?

0

documentationselect_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

相關問題