Итак, у меня есть это действие для сохранения модели:
def create
logger.debug(params[:user_id])
group_id = params['approver']['group_id']
@approver = Approver.new(params[:approver])
@approver.user_id = params[:user_id]
respond_to do |format|
if @approver.save
logger.warn("Approver saved!")
flash[:notice] = "New approver has been added!"
format.html { redirect_to(group_path(group_id)) }
else
flash[:notice] = "Sorry .. had issues adding the approvers!"
format.html { redirect_to(group_path(group_id)) }
end
end
end
Передаваемые параметры:
Parameters: {"commit"=>"Submit", "authenticity_token"=>"C35lovRRjJzekruZiwTZjaMs4KgwiEJnXn10b0nD+0w=", "utf8"=>"✓", "user_id"=>["18"], "approver"=>{"group_id"=>"13"}}
И, глядя на мои журналы, отладочное сообщение в действии выводит «13» в качестве правильного значения. Однако значение, вставляемое в базу данных, всегда равно «1», и вот фрагмент из журналов:
INSERT INTO `approvers` (`user_id`, `updated_at`, `created_at`, `group_id`) VALUES (1, '2011-07-13 04:58:51', '2011-07-13 04:58:51', 13)
Чтобы еще больше усложнить ситуацию, для отладки, если я изменю строку 5 действия на:
@approver.user_id = 19
все отлично работает.
Может кто-нибудь объяснить, что я делаю не так?