Rails 4: правильный способ создания объектов из другой модели из контроллера
Используя strong_params из Rails 4, какой предпочтительный способ сделать это? Я использовал приведенное ниже решение, но не уверен, что это лучший способ сделать это. (хотя работает)
Пример:
game_controller.rb (сокращенная версия!)
# inside game controller we want to build an Participant object
# using .require fails, using .permits goes true
def GameController < ApplicationController
def join_game_as_participant
@participant = Participant.new(participant_params)
end
end
def participant_params
params.permit(:participant,
:participant_id,
:user_id,
:confirmed).merge(:user_id => current_user.id,
:game_id => params[:game_id])
end
1 ответ
Решение
Ваш participant_params
метод должен быть private
и вы должны использовать require
метод:
private
def participant_params
params.require(:participant).permit(
:participant_id, :user_id, :confirmed
).merge(
:user_id => current_user.id, :game_id => params[:game_id]
)
end
Надеюсь это поможет