このフォームを作成しました:
<%= form_for @task do |task| %>
<%= task.hidden_field :user_id, :value => @user.id %>
<%= task.label :task %>
<%= task.text_area :task %>
<%= task.label :deadline %>
<%= task.text_field :deadline %>
<%= task.submit "Add" %>
<% end %>
そしてコントローラー:
def new
@task = Todo.new
end
def create
@task = Todo.new(params[:task])
if @task.save
set_flash "Task added"
redirect_to action: 'index'
else
set_flash "Task adding failed, Please try again"
redirect_to action: 'index'
end
end
def set_user
@user = current_user
end
フォームを送信すると、次のエラーが表示されます。
SQLite3::ConstraintException: todos.user_id を NULL にすることはできません: INSERT INTO "todos" ("completed", "created_at", "deadline", "task", "updated_at", "user_id") VALUES (?, ?, ? 、?、?、?)
何が問題ですか?
編集:
これは、レールによって渡されるパラメーターです。
{"utf8"=>"✓",
"authenticity_token"=>"oJr4ii4szyBVAacBJDNYcZn8QWGrFij4dF1wqD1Fvic=",
"todo"=>{"user_id"=>"1",
"task"=>"Hello World",
"deadline"=>"03/20/2013"},
"commit"=>"Add"}
これがモデルです:
attr_accessible :user_id, :deadline, :task, :completed
ありがとう