0
私は作成するために渡された次の作成パラメータを持っています!何かが見つからない場合、create paramsから正確なエラーを返す方法
def create_params
params.permit(
:param1,
:param2,
:param3,
:param4,
:param5
)
end
コントローラ
def create
something = Model.create!(create_params)
end
テーブル内のすべての列がNULLではありません。したがって、私がパラメータのいずれかを渡さないと、次のようなエラーが発生します。
Mysql2::Error: Field 'col5' doesn't have a default value: INSERT INTO `table` (`col1`, `col2`, `col3`, `col4`) VALUES ('value1', 'value2, 'value3', 'value4')
しかし、正確なエラーメッセージが表示されません。どのように有効なエラーメッセージを返すことができますか?
'Model.create'は、データベースにレコードを作成しようとします。より良い方法は 'model = Model.new(create_params)'です。それで 'model.save'が理にかなっています。 –
そのため、モデルで検証チェックを追加すると、コントローラーでcreateアクションとupdateアクションを追加した場合、すべてのパラメーターが必要なくなってしまいます。 –
@Nicholasjamesはい、可能です:http://guides.rubyonrails.org/active_record_validations.html#on – unkmas