Ruby on rails Rails路由到资源

Ruby on rails Rails路由到资源,ruby-on-rails,routes,link-to,Ruby On Rails,Routes,Link To,我正在构建一个Rails应用程序,它是一个播客目录。我有播客和剧集。插曲属于播客,播客有很多插曲。在主页上,我想展示已经制作的最后5集并链接到它们 我让它处理这个问题,尽管这显然不是解决问题的方法: <% @episodes.each do |episode| %> <%# link_to episode do %> <a href="http://example.com/podcasts/<%= episode.podcast_id %>/

我正在构建一个Rails应用程序,它是一个播客目录。我有播客和剧集。插曲属于播客,播客有很多插曲。在主页上,我想展示已经制作的最后5集并链接到它们

我让它处理这个问题,尽管这显然不是解决问题的方法:

<% @episodes.each do |episode| %>
  <%# link_to episode do %>
    <a href="http://example.com/podcasts/<%= episode.podcast_id %>/episodes/<%= episode.id %>" class="tt-case-title c-h5"><%= episode.title %></a>
  <%# end %>
<% end %>
以下是路由文件:

Rails.application.routes.draw do

  devise_for :podcasts

  resources :podcasts, only: [:index, :show] do
    resources :episodes
  end

  authenticated :podcast do
    root 'podcasts#dashboard', as: "authenticated_root"
  end

  root 'welcome#index'

end
rake routes | grep插曲的结果

podcast_episodes GET    /podcasts/:podcast_id/episodes(.:format)          episodes#index
                            POST   /podcasts/:podcast_id/episodes(.:format)          episodes#create
        new_podcast_episode GET    /podcasts/:podcast_id/episodes/new(.:format)      episodes#new
       edit_podcast_episode GET    /podcasts/:podcast_id/episodes/:id/edit(.:format) episodes#edit
            podcast_episode GET    /podcasts/:podcast_id/episodes/:id(.:format)      episodes#show
                            PATCH  /podcasts/:podcast_id/episodes/:id(.:format)      episodes#update
                            PUT    /podcasts/:podcast_id/episodes/:id(.:format)      episodes#update
                            DELETE /podcasts/:podcast_id/episodes/:id(.:format)      episodes#destroy

如何使用直接链接到该集的链接正确创建标题的文本链接?谢谢

当您对块使用
link\u
时,您需要传递到块中的唯一内容是链接的文本,因此您应该能够做到这一点(假设您的路由设置正确):



更新 你真的不需要在这里用积木。这对您来说应该很好,并且更加简洁

<% @episodes.each do |episode| %>
  <%= link_to episode.title, episode, class="tt-case-title c-h5" %>
<% end %>


更新#2 感谢您提供您的路线信息。试试这个:

<% @episodes.each do |episode| %>
  <%= link_to episode.title, podcast_episode_path(episode.podcast, episode), class="tt-case-title c-h5" %>
<% end %>

当您在块中使用
link\u时,您需要传递到块中的唯一内容是链接的文本,因此您应该能够做到这一点(假设您的路线设置正确):



更新 你真的不需要在这里用积木。这对您来说应该很好,并且更加简洁

<% @episodes.each do |episode| %>
  <%= link_to episode.title, episode, class="tt-case-title c-h5" %>
<% end %>


更新#2 感谢您提供您的路线信息。试试这个:

<% @episodes.each do |episode| %>
  <%= link_to episode.title, podcast_episode_path(episode.podcast, episode), class="tt-case-title c-h5" %>
<% end %>


谢谢。我得到了以下错误:未定义的方法“插曲路径”。我已将问题更新为包含路由。@R.Coy您可以将此命令的输出添加到您的问题中吗?-
rake-routes | grep-epoint
@R.Coy您将在终端窗口中运行该^命令(以防万一您不知道)。:-)我已将结果添加到上述问题中。谢谢,明白了。谢谢谢谢我得到了以下错误:未定义的方法“插曲路径”。我已将问题更新为包含路由。@R.Coy您可以将此命令的输出添加到您的问题中吗?-
rake-routes | grep-epoint
@R.Coy您将在终端窗口中运行该^命令(以防万一您不知道)。:-)我已将结果添加到上述问题中。谢谢,明白了。谢谢