2016-10-18 8 views
0

Я пытаюсь использовать время выбора с местными жителями, переданных парциальное, но я получаю следующее сообщение об ошибкене определен метод с time_select

undefined method `open_time' for #<Merchant:0x007fb41fd0aa90> 

Частичные Позвоните

= form_for @merchant, :url => admin_merchant_path(@merchant) do |form| 
     #account-panel.mdl-tabs__panel 
     = render :partial => 'venue', :locals => {:address_fields => form} 
     = render :partial => 'hours', :locals => {:hour_fields => form} 

Rendered Частичное

.mdl-cell.mdl-cell--12-col 
    /h3.mdl-typography--display-1.teal-heading= t('.trading_hours_title') 
    - (0..6).each do |i| 
    li.mdl-list__item.mdl-list__item--two-line 
     span.mdl-list__item-primary-content 
     = Date::DAYNAMES[i] 
     span.mdl-list__item-sub-title 
     = hour_fields.time_select :open_time, {:minute_step => 30, :ampm => true} 

Торговый образец

has_many :trading_hours, dependent: :destroy 
accepts_nested_attributes_for :trading_hours 

Торговый час Модель

belongs_to :merchant 
+0

У вас есть стол 'open_time' в таблице' Merchants'? – Sajan

+0

Это не сработает, поскольку в настоящее время вы вызываете 'open_time' на торговце вместо trade_hours, вы должны использовать поля для работы с соответствующей моделью. –

+0

@sawangupta вы можете объяснить немного больше о том, как я буду использовать fields_for в этом примере? –

ответ

1

вы можете сделать что-то вроде этого (начиная с последней строки вашего упомянутого кода):

<%= hour_fields.fields_for :trading_hours do |trading_field| %> 
    <%= trading_field.time_select :open_time, {:minute_step => 30, :ampm => true} %> 
<% end %> 

И в Merchants действия контроллера сборки trading_hours если вы дон у него нет trading_hour:

@merchant.trading_hours.build 

PS: Это является ERB (я знаю только это :))

0

Вы упомянули accepts_nested_attributes_for: trading_hours Если у вас есть open_time столбец в вашей модели торговых часов следующий код может помочь:

Если вы используете simple_form в вашем приложении

= hour_fields.simple_fields_for :trading_hours do |nest_form| 
    = nest_form.open_time 

 Смежные вопросы

  • Нет связанных вопросов^_^