###前提・実現したいこと
銀行(bank)とその支店(branch)を登録するための画面を作ろうとしています。
bankとbranchをscaffoldで以下のようなモデルで作りました。
Banks
string :bank_cd, limit: 4
string :bank_name
Branches
string :bank_cd, limit: 4
string :branch_cd, limit: 4
string :branch_name
また、
bank.rb
class Bank < ApplicationRecord has_many :branches, dependent: :destroy end
branch.rb
class Branch < ApplicationRecord belongs_to :bank end
という状態です。
ここで、view/branches/_form.html.erb 内のbank_cdを入れる部分を以下のようにしました。
<div class="field"> <%= form_for @branch do |f| %> <%= f.label :bank_cd %> <%= f.collection_select :bank_cd, Bank.all, :bank_cd, :bank_name %> <% end %> </div>
画面上は想定通りに出てくるのですが、支店レコードを保存することができません。
なお、コントローラーは下記のようにscaffoldのほぼデフォルトです。
branches_controller.rb
class
1 before_action :set_branch, only: [:show, :edit, :update, :destroy] 2 3 def index 4 @branches = Branch.all 5 end 6 7 def show 8 end 9 10 def new 11 @branch = Branch.new 12 end 13 14 def edit 15 end 16 17 def create 18 @branch = Branch.new(branch_params) 19 20 respond_to do |format| 21 if @branch.save 22 format.html { redirect_to @branch, notice: 'Branch was successfully created.' } 23 format.json { render :show, status: :created, location: @branch } 24 else 25 format.html { render :new } 26 format.json { render json: @branch.errors, status: :unprocessable_entity } 27 end 28 end 29 end 30 31 def update 32 respond_to do |format| 33 if @branch.update(branch_params) 34 format.html { redirect_to @branch, notice: 'Branch was successfully updated.' } 35 format.json { render :show, status: :ok, location: @branch } 36 else 37 format.html { render :edit } 38 format.json { render json: @branch.errors, status: :unprocessable_entity } 39 end 40 end 41 end 42 43 def destroy 44 @branch.destroy 45 respond_to do |format| 46 format.html { redirect_to branches_url, notice: 'Branch was successfully destroyed.' } 47 format.json { head :no_content } 48 end 49 end 50 51 private 52 def set_branch 53 @branch = Branch.find(params[:id]) 54 end 55 56 def branch_params 57 params.require(:branch).permit(:bank_cd, :branch_cd, :branch_name) 58 end 59end 60
どなたか、お力添え願えますでしょうか。
回答1件
あなたの回答
tips
プレビュー