Rails 4:从控制器创建其他模型对象的正确方法

时间:2013-10-14 16:46:30

标签: object ruby-on-rails-4 strong-parameters associated-object

使用Rails 4中的strong_params,首选的最佳方法是什么? 我使用了以下解决方案,但不确定这是否是最好的方法。 (虽然有效)

示例:

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 个答案:

答案 0 :(得分:3)

您的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

希望这个帮助