2011-07-21 12 views
6

Pracuję w Ruby on Rails i nie mogę znaleźć sposobu użycia select_month w form_for. Co staram sięUżywanie select_month w formularzu dla

<%= form_for(@farm) do |f| %> 
<div class="field"> 
<%= f.label :harvest_start %><br /> 
<%= select_month(Date.today, :field_name => 'harvest_start') %> 
</div> 
<div class="actions"> 
<%= f.submit %> 
</div> 
<% end %> 

wich jest wyprowadzanie

["harvest_start", nil] 

dziękuję za pomoc. przepraszam, jeśli formatowanie jest nieprawidłowe.

+0

poniższy kod jest tym, co mam do pracy. –

+0

<%= f.label :harvest_start %>
<%= f.collection_select :harvest_start, Farm::MONTHS, :to_s, :to_s, :include_blank => true %>

+0

@ farm.harvest_start = params [: harvest_start] –

Odpowiedz

2

(ten odpowiedział w komentarzach T. Weston Kendall tak właśnie czyni go właściwą odpowiedź)

następujący kod jest to, co mam do pracy.

_form.html.erb

<div class="field"> 
    <%= f.label :harvest_start %><br /> 
    <%= f.collection_select :harvest_start, Farm::MONTHS, :to_s, :to_s, :include_blank => true %> 
</div> 

farms_controller.rb

@farm.harvest_start = params[:harvest_start] 

mam również select_month do pracy, ale ja potrzebowałem :include_blank i nie chcą spędzić czas zastanawiać się, co zrobić z zerą w tablicy.

2

Aby korzystać wybierz miesiąc konsekwentnie z resztą formularza Builder wykorzystać date_select bez dnia lub miesiąca:

date_select(object_name, method, options = {}, html_options = {}) 

Wystarczy użyć f.date_select :harvest_start, {order: [:month]} czyli dodać order: [:month] lub discard_year: true, discard_day: true do options hash, jak określono w Dzięki temu możesz przekazać wszystkie pozostałe opcje, tak jak w haszyszach opcji. Coś jak:

Powiązane problemy