上記のテーブル設計で、
fomrオブジェクトを使い、
companyとstaffの値をadminで保存し、
adminのindex画面でcompanyとstaffのname,name_kanaを表示させたいです。
admin側では、new画面でcollection_selectを使い選択から保存まではできたのですが、
index画面への表示ができません。
collection_selectのvalue属性を複数にする方法もなかなか見つからずです。
value属性をnameにして、正常に保存されます。
各テーブルのリレーションは済んでいます。
なかなか調べても改善策が見つからずで、、、
ご教授お願いできませんでしょうか。
よろしくお願いいたします。
admin/new <%= f.collection_select(:name, @companies, :id, :name, { class:"select2" }) %>
admin/index <% @admins.each do |admin| %> <tr> <td><%= admin.name %></td> <td><%= admin.name_kana %></td> </tr> <% end %>
admins_controller.rb def index @admins = Admin.all @companies = Company.all end def new @admin = CompanyAdmins.new @companies = Company.all end def create @admin = CompanyAdmins.new(admin_params) if @admin.save redirect_to root_path, notice: "投稿が完了しました" else flash.now[:aleart] = "投稿が失敗しました" render 'new' end end
foms/company_admins.rb class CompanyAdmins include ActiveModel::Model include ActiveRecord::AttributeAssignment attr_accessor :name, :name_kana, :place def save ActiveRecord::Base.transaction do company = Company.create(name: name, name_kana: name_kana) Admin.create(name: name, name_kana: name_kana, place: place,company_id: company.id ) end end end
回答1件
あなたの回答
tips
プレビュー