Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails &引用;表单中的第一个参数不能包含nil或为空";,但它们不是';(据我所知)零?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails &引用;表单中的第一个参数不能包含nil或为空";,但它们不是';(据我所知)零?

Ruby on rails &引用;表单中的第一个参数不能包含nil或为空";,但它们不是';(据我所知)零?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在尝试使用Rails创建一个引导模式表单,但是我一直遇到前面提到的错误。这是我的表单代码(导致错误): 我不知道该怎么办。我会检查@restaurant变量,确保它不是零。我可以看到您正在初始化@review,但除非您已使用before_操作或类似操作初始化@restaurant,否则它不会在您的新操作中初始化。我假设该表单是用于属于餐厅的新review。我知道在旧版本的Rails中,类似这样的东西会起作用 您不应该将表单提交到新路径(通常是创建路径),因此它可能会呈现“新建”操作,因此不会

我正在尝试使用Rails创建一个引导模式表单,但是我一直遇到前面提到的错误。这是我的表单代码(导致错误):


我不知道该怎么办。

我会检查@restaurant变量,确保它不是零。我可以看到您正在初始化@review,但除非您已使用before_操作或类似操作初始化@restaurant,否则它不会在您的新操作中初始化。

我假设该表单是用于属于
餐厅的新
review
。我知道在旧版本的Rails中,类似这样的东西会起作用


您不应该将表单提交到新路径(通常是创建路径),因此它可能会呈现“新建”操作,因此不会重新启动餐厅或审阅变量。请更新控制器的代码,以便我们可以看到您如何获得@restaurantOk,我更新了我的帖子,让它更清晰。你真的收到了
新操作的参数:restaurant_id吗?换言之,你有没有检查过餐厅是否正常装货?另外,在采取行动之前,您不需要这样做,但我们以后不能这样做。@Dariobarrionevo是的,因为
find
如果找不到,将生成一个异常。谢谢,我没有意识到我忽略了这一点。我更新了我的帖子,使我所做的更加明显。没问题@ZakSingh
<%= bootstrap_form_for([@restaurant, @review], url: 
new_restaurant_review_path([@restaurant, @review])) do |f| %>
before_action :set_restaurant
def new
  @review = Review.new(restaurant: @restaurant)
end
private
def set_restaurant
  @restaurant = Restaurant.find(params[:restaurant_id])
end