2017-12-08 11 views
0

私はjsonb(hash)フィールドのスケジュールモデルを持っています。railsビューでキー値ハッシュ属性の入力を使用する方法は?

create_table :schedules do |t| 
    t.jsonb :monday 
    t.jsonb :tuesday 
    t.jsonb :wednesday 

    t.timestamps null: false 
end 

schedule = Schedule.create(monday: {start: '8:00', end: '21:30'}) 

だから私はショー/編集フォームの入力として、このstart, end属性を表示しようとしています。 私はこの解決策が間違っていることを知っています(undefined method 'for start、end) `。 jsonbハッシュに対してこの入力をどのように表示できますか?それとももっと良い解決策がありますか?

<%= form_for @excursion do |f| %> 
    <%= f.fields_for :schedule do |ff| %> 
     <%= ff.fields_for :monday do |fff| %> 
      <%= fff.input :start %> 
      <%= fff.input :end %> 
     <% end %> 
    <% end %> 
    <%= f.submit 'save' %> 
<% end %> 

答えて

1

あなたは、彼らがハッシュ/ JSONをネストされている入力フィールドに伝える必要があり、また、最初のビュー上のコントローラー、上:

<%= form.input "monday[start]" %> 
<%= form.input "monday[end]" %> 

とコントローラ上:

def schedule_params 
    params.require(:schedule).permit(:monday => [:start, :end]) 
end 

あなたはいいですね。

+0

#<スケジュール:0x000000097a0630>のための未定義のメソッドmonday [開始] –

関連する問題