0

我正在尝试为餐厅页面添加评论部分,我使用 hidden_​​fiedd 将 传递restauran_idreview#new页面,但是当我提交评论时,它没有分配restaurant_id给评论并且它导致问题。

create行动中reviews_controller我有:@review = Review.new

Parameters: {"review"=>{"score"=>"", "email"=>"", "restaurant_id"=>"471746462", 
"first_name"=>"", "content"=>"", "last_name"=>""}, 
"utf8"=>"✓", "commit"=>"Post Review",
"authenticity_token"=>"JzCoTOWj7k2huy9GTRknz+hU4Ej/Gg+dHEHvoz2vtcA="}

但是当我尝试从参数中获取餐厅时,它显示为零。

@restaurant = Restaurant.find_by_id(@review.restaurant_id)

或者

@restaurant = Restaurant.find(params[:restaurant_id])

询问:

SELECT "restaurants".* FROM "restaurants" WHERE "restaurants"."id" IS NULL LIMIT 1
4

1 回答 1

0

尝试:

@restaurant = Restaurant.find(params[review][:restaurant_id])

代替 :

@restaurant = Restaurant.find(params[:restaurant_id])

如果您检查 params 哈希,您将看到它restaurant_id是一个嵌套参数review

于 2012-07-31T20:17:07.600 回答