2017-07-01 13 views
1

私の予定モデルの許容されないパラメータが引き続きあります。ここでhas_manyを使用しているRails 5の許容されていないパラメータ、

は私のモデルは

class Appointment < ApplicationRecord 
     belongs_to :client 
     belongs_to :trainer 
    end 

    class Trainer < ApplicationRecord 
     has_many :appointments 
     has_many :clients, through: :appointments 
    end 

    class Client < ApplicationRecord 
    has_many :appointments 
    has_many :trainers, through: :appointments 
    end 

ここに私のコントローラだが、私は簡潔にするために、私のプライベートな方法を記載されています。

def appt_params 
    params.require(:appointment).permit(:appointment_date, client_id: [], 
    trainer_id: []) 
    end 

エラーは、トレーナー、クライアントの許可されていないパラメータです。 私の強力なパラメータメソッドで何かが欠けていますか?ここで

は私の予定/新しいビュー

<%= form_for @appointment do |f| %> 
    <%= f.datetime_select :appointment_date %> 
    <%= f.collection_select :trainer, Trainer.all, :id, :first_name %> 
    <%= f.collection_select :client, Client.all, :id, :name %> 
    <%= f.submit %> 
<% end %> 

である私は私のappt_paramsメソッドにコレクションを追加し、まだ同じエラーを取得します。私はまだRailsのハングアップを取得しており、何か助けていただければ幸いです。ありがとうございます!

答えて

1

アソシエーションを使用しているため、client_idとtrainer_idだけで十分で、整数形式では配列ではありません。

def appt_params 
params.require(:appointment).permit(:appointment_date, :client_id, 
:trainer_id) 
end 

そして、あなたのアプリケーション/への新しいビュー:働い

<%= form_for @appointment do |f| %> 
    <%= f.datetime_select :appointment_date %> 
    <%= f.collection_select :trainer_id, Trainer.all, :id, :first_name %> 
    <%= f.collection_select :client_id, Client.all, :id, :name %> 
    <%= f.submit %> 
<% end %> 
+1

だからにあなたの強いパラメータのメソッドのコードを変更します。ありがとうございました! – ryanb082

+0

@ ryanb082聞いてよかったです。 – Dark

関連する問題