のためのform_forヘルパーを選択:私は何をしようとしている私は、次のモデルきた親の会
class Reservation < ActiveRecord::Base
belongs_to :room
#some validations
validates :room, presence: true
end
そして
class Room < ActiveRecord::Base
has_many :reservation
# some validations
end
は、room_idの選択オプションを表示し、協会を検証します外部キーではありません。
だから、私はこのフォームヘルパーはReservation
のために選択する必要があり:
<%= f.select :room_id, Room.all.map { |room| [ room.code, room.id ] }, required: true %>
問題は、私が保存しようとすると、ルームの検証が呼び出されていると
「ルームはできると述べています空白にしてください
どうすればいいですか? ReservationControllerに私の許可のparamsは、以下のとおりです。
params.required(:reservation).permit(:room_id, ...)
、あなたは部屋が有効であるかどうかを検証したい場合は、あなたが行うことができます:PARAMSはようにする必要があり
params.required(:reservation).permit(:room, ...) #... = other params
おかげ
strong_paramsに 'room_id'を追加するとどうなりますか?また、あなたの予約/ルームコントローラ作成アクションを投稿してもらえますか? –
@HarrisonLucas 私が変更した場合の検証パス:room to:room_id allowed params。 ルームが存在する場合、どのように検証できますか?検証: 'validates:room、presence:true'はこれをしませんか? 選択肢を作成するより良い方法はありますか? "simple_form"のようなものが[plataformatec]の 'f.association'(https://github.com/plataformatec/simple_form) – gumaro
より詳しい説明は私の答えを参照してください –