我只是想链接到嵌套在指南中的类别#new。我从指南显示页面链接到它
<%= link_to "Add new category", new_guide_category_path %>
问题是我收到错误:
没有路由匹配{:action =&gt;“new”,:controller =&gt;“categories”,:id =&gt;“blah”}缺少必需的键:[:guide_id]
它使用:id而不是:guide_id。我如何解决这个问题,以便存储它使用的参数:guide_id。
或者是否有不同的方式链接到指南/:guide_id / categories / new页面和其他嵌套资源页面
路线:
resources :guides do
resources :categories, only: [:new, :create, :edit, :update]
end
仍在学习rails,所以这可能是一个noob问题,你甚至没有使用路径链接到它。
答案 0 :(得分:1)
例如,你有模型指南,在控制器中你有变量,如
@guide = Guide.where(...)
在视图中你需要指定这个模型的id和简单的方法,只是为了将这个变量传递给url helper:
<%= link_to "Add new category", new_guide_category_path(@guide) %>
这也适用于多个嵌套资源。例如:
路线:/foo/:foo_id/bar/:bar_id/buz/:id
只需将所有这些模型实例传递给helper,如
show_buz_bar_foo_path(@foo, @bar, @buz)
rails会自行获取这些项目的ID。
答案 1 :(得分:0)
尝试这样做
var sourceMap = require('source-map');
var fs = require('fs');
fs.readFile('./sourcemap.js', 'utf8', function (err, data) {
var smc = new sourceMap.SourceMapConsumer(data);
console.log(smc.originalPositionFor({
line: 16,
column: 29356
}));
});
new_guide_category_path( @guide.id )
帮助器可以根据提交数据对您的嵌套进行排序,但链接到其他路径则是另一回事。