我对RoR很新。我在尝试运行此命令时遇到错误。有关原因的任何想法?
在FavoritesController #index中的ActiveRecord :: RecordNotFound 无法找到Dishing with' id' = 1
提取的来源(第24行):
<td><%= Dish.find(favorite.dishing_id).dish_name %></td>
<% d = Dishing.find(favorite.dishing_id) %>
<td><%= Restaurant.find(d.restaurant_id).name %></td>
<td><%= User.find(favorite.user_id).email %></td>'
这行代码发生错误:
<% d = Dishing.find(favorite.dishing_id) %>
这是我的 favorites_controller.rb :
class FavoritesController < ApplicationController
def index
@favorites = Favorite.all
end
def show
@favorite = Favorite.find(params[:id])
end
def new
@favorite = Favorite.new
end
def create
@favorite = Favorite.new
@favorite.dish_comment = params[:dish_comment]
@favorite.user_id = curent_user.id
d = params[:dish_id]
r = params[:restaurant_id]
# find_by
if @favorite.save
redirect_to "/favorites", :notice => "Favorite created successfully."
else
render 'new'
end
end
def edit
@favorite = Favorite.find(params[:id])
end
def update
@favorite = Favorite.find(params[:id])
@favorite.dish_comment = params[:dish_comment]
@favorite.dishing_id = params[:dishing_id]
@favorite.user_id = params[:user_id]
if @favorite.save
redirect_to "/favorites", :notice => "Favorite updated successfully."
else
render 'edit'
end
end
def destroy
@favorite = Favorite.find(params[:id])
@favorite.destroy
redirect_to "/favorites", :notice => "Favorite deleted."
end
end
答案 0 :(得分:0)
我没有解决问题的根源,但最终通过在Dishing表中添加一个新的id:1条目来消除错误。我已经添加了:dependent =&gt; :摧毁到Dishing模型,所以希望这不会再次发生。谢谢你的帮助!
答案 1 :(得分:0)
您似乎假设在两个不同的表中有两个具有相同ID的记录。
这通常不安全。您应该修复程序的体系结构,而不是将记录添加到具有匹配ID的菜单中。
Dish
和Dishing
不必共享相同的ID。将dish_id
和dishing_id
添加到收藏夹。