我有一个嵌套项目,其创建形式位于其父项的显示视图中。在这种情况下,它是成就列表 (achievement) 上的单个成就 (achievement_item)。
除了未通过验证的新项目外,一切似乎都有效。抛出一个错误:
路由错误
No route matches {:action=>"show", :controller=>"achievements"}
尝试跑步
rake routes
以获取有关可用路线的更多信息。
当我跑步时,rake routes
我得到了一片信息森林。顺便说一句,我具体应该寻找什么?我将成就和成就项目的“显示”操作与 photo_galleries 和 gallery_photos 中的对应项进行了比较(我开始使用的结构 - 它将无效的新 gallery_photos 重定向到编辑页面 - 我一直在并排比较所有文件,但我没有发现任何逻辑差异,这并不是说没有任何差异),但一切看起来都具有相同的格式。
我什至不知道从哪里开始。这就是我在嵌套项的控制器中要做的事情:
def create
@achievement = Achievement.find(params[:achievement_id])
@achievement_item = @achievement.achievement_items.create(params[:achievement_item])
if @achievement_item.save
redirect_to achievement_path(@achievement)
else
render "edit"
end
end
注释掉render "edit"
会导致缺少模板错误,所以至少我知道我遇到了这一行。
这是我的编辑页面:
<h1>Editing achievement item</h1>
<%= render 'form', achievement_item: @achievement_item %>
<%= link_to 'Show', @achievement %> |
<%= link_to 'Back', achievement_path %>
如果这样的错误消息能指出问题所在,那就太好了。并且有人应该对所有问题做点什么。:-)