やりたいこと
試したこと・考えたこと
・やりたいことはフォームの一括登録であるので、それを調べたところ、以下のようにfields_forを利用したフォームの作り方を紹介した記事が多数見つかったが、今回やりたいことは、「form_for内で異なるモデルを編集できるようになる。」ことではない。やりたいことはまさしく下記のようなこと。
http://ruby-rails.hatenadiary.com/entry/20141208/1418018874#accepts_nested_attributes_for-form
・オブジェクトを保存したいレコード分作成して保存することを考えたが、力技すぎるので却下。
仕様
view:
= Time.zone.today.strftime('%Y/%m/%d') = form_for @new_tobanhyo do |f| - @tobanhyos[false].each do |tobanhyo| p = f.select :room_id, @rooms, :selected => tobanhyo.room.id = f.select :role_id, @roles, :selected => tobanhyo.role.id = f.date_field :start_of_period, value: Time.zone.today.strftime('%y/%m/%d') = "---------------------" - @tobanhyos[true].each do |tobanhyo| p = f.select :room_id, @rooms, :selected => tobanhyo.room.id = f.select :role_id, @roles, :selected => tobanhyo.role.id = f.date_field :start_of_period, value: Time.zone.today.strftime('%Y/%m/%d') = f.submit
もちろんこれでは一括登録はできず。
モデル:
ActiveRecord::Schema.define(version: 20180603012133) do create_table "roles", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t| t.string "name" t.datetime "created_at", null: false t.datetime "updated_at", null: false end create_table "rooms", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t| t.string "name" t.datetime "created_at", null: false t.datetime "updated_at", null: false end create_table "tobanhyos", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t| t.integer "room_id" t.integer "role_id" t.boolean "fixed" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.date "start_of_period" end end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。