「プロジェクト」を作成するためのフォームに苦労しています。最終的には現在の user_id のみを許可したいのですが、 User モデルまたは認証をまだ構築していないため、プレースホルダーとしてハードコーディングして1
います。
アプリ/ビュー/プロジェクト/new.html.erb:
<%= form_for(:project, :url => {:action=>'create'}) do |f| %>
<%= f.text_field(:name) %>
<%= f.text_field(:instructions) %>
<%= f.hidden_field( :user_id, {:value=>1}) %>
<%= f.submit('Create Project') %>
<% end %>
app/controllers/projects_controller.rb
def create
#save object
if Project.create( project_params )
redirect_to(:action=>'show')
else
render('new')
end
end
private
def project_params
params.require(:project).permit({:user_id => [1]}, :instructions, :max_duration, :active, :max_videos, :hashed_id)
end
フォームを送信しようとすると、次のエラーが表示されます。
Mysql2::Error: Field 'user_id' doesn't have a default value: INSERT INTO `projects` (`created_at`, `instructions`, `updated_at`) VALUES ('2013-08-16 17:38:56', 'sdfgsdf', '2013-08-16 17:38:56')
project_params() メソッドが user_id を取り除いているようです。私は何を間違っていますか?