我对编码很新。我正在努力通过创建一个网络应用程序来支持我的技能,该应用程序允许人们为他们最喜欢的餐馆排名特定的菜肴(例如汉堡包顶级餐厅)。
我目前正在制作连接餐馆和菜肴的连接表。我正在尝试添加select_tags
从餐桌中选择一个菜肴,从餐厅餐桌中选择一个餐馆。我得到了NoMethodError
。非常感谢我对错误的任何见解。谢谢!
错误:
Dishings中的NoMethodError #new 显示/Users/frederick7/code/Appdev/pear_review/app/views/dishings/new.html.erb
第27行引出:
#
的未定义方法`map'
提取的来源(第27行):
</label>
<%= select_tag(:restaurant_id, options_from_collection_for_select(@dishing, 'id', 'restaurant_id', @dishing.id) ) %>
</div>
<!-- Label and input for dish_id -->
以下是views / dishings / new.html.erb中的相关代码:
<!-- Label and input for restaurant_id -->
<div class="form-group">
<label for="restaurant_id" class="control-label">
Restaurant
</label>
<%= select_tag(:restaurant_id, options_from_collection_for_select(@dishing, 'id', 'restaurant_id', @dishing.id) ) %>
</div>
<!-- Label and input for dish_id -->
<div class="form-group">
<label for="dish_id" class="control-label">
Dish
</label>
<%= select_tag(:dish_id, options_from_collection_for_select(@dishing, 'id', 'dish_id', @dishing.id) ) %>
</div>
这可能来自dishings_controller.rb的相关代码:
def new
@dishing = Dishing.new
end
def create
@dishing = Dishing.new
@dishing.restaurant_id = params[:restaurant_id]
@dishing.dish_id = params[:dish_id]
if @dishing.save
redirect_to "/dishings", :notice => "Dishing created successfully."
else
render 'new'
end
end
答案 0 :(得分:0)
正如我所看到你使用的@dishing不是数组而且options_from_collection_for_select需要数组或集合。
还有一件事我注意到你正在为新动作创建视图,并且可能在控制器中使用@dishing = Dishing.new。
如果您正在获取restaurant_id和dish_id,那么