不能通过ID嵌套航线
问题描述:
对于个人achievment,我试图创建一个在线杂志,让人们看了一些新闻不能通过ID嵌套航线
我创建了两个支架,一个是漫画,另一个用于其页面。由于第二个脚手架,我设法创建了杂志,通过多上传系统上传了它的页面。
然后,我想要的链接,一本杂志的页面看起来像domain.net/magazines/:id/pages/:id
,但是,我得到了一些困难,我似乎不能够通过自己
这里解决我的杂志#显示视图:
<h4>
<%= @magazine.titre %>
</h4>
<%= image_tag @magazine.apercu, size: '200x200' %>
<% @magazine.pages.each do |m| %>
<%= link_to magazine_page_url, :id => m.id do %> <!-- Here -->
<%= image_tag m.image, size: '100x100' %>
<% end %>
<%= link_to m do %>
<%= image_tag p.image, size: '100x100' %>
<% end %>
<%= link_to 'Supprimer', m, :method => :delete, data: {confirm: 'Are you sure?'} %>
<% end %>
<br />
<%= link_to 'Edit', edit_magazine_path(@magazine) %> |
<%= link_to 'Back', magazines_path %>
每当我试图让这个页面,我发现了以下错误:
的ActionController :: UrlGenerationError在杂志#秀 - 无路由匹配{:动作=> “秀” ,:controller =>“pages”, :id =>“6”}缺少必需的键:[:magazine_id]
正如你所看到的,我试图创建一个围绕每个杂志页面的链接来重定向到页面本身,但是我不能设法给链接一个适当的id。
当我试图把<%= link_to m do %>
而不是magazine_page_url
,他正在寻找一个名为'page_path',这是因为我在我的杂志资源嵌套页面资源不存在的路径。
这里是我的路由文件,以防万一,如果你需要看别的东西
不要犹豫Rails.application.routes.draw do
root to: 'home#index'
namespace :admin do
resources :carousels
end
get '/admin' => 'admin#index', as: :admin_root
resources :magazines do
resources :pages
end
end
欢迎任何帮助
预先感谢您
答
通杂志页面实例转换为url参数:
<%= link_to magazine_page_url(@magazine, m) do
您也可以:
<%= link_to [@magazine, m] do
谢谢你,工作就像一个魅力,加上我根本没有想到这个可能性! – Jaeger