如何让我的 link_to 转到我的 show 方法?

How do I get my link_to to go to my show method?

我正在使用 Rails 5。我在 link 访问控制器中的显示方法时遇到问题。我在 config/routes

中定义了这个
  resources :scenarios do
    resources :confidential_memos
  end

在一个视图中,我把这个

<td><%= link_to "#{subscription.scenario.title}", scenarios_path(subscription.scenario) %>

在我的控制器中我有显示方法

class ScenariosController < ApplicationController

  def show
    @scenario = Scenario.find(params[:id])
  end

但是当我点击 link 时,出现错误

The action 'index' could not be found for ScenariosController

如何让我的 link 参加我的表演活动?

scenarios_path 使用复数 "scenarios" 所以它正在寻找几个场景并且映射到 index 动作,因此你的错误。要显示单个场景,您将使用单数:

scenario_path(subscription.scenario)

如果您只有 show 操作,那么您可能希望在您的路线中明确:

resources :scenarios, :only => %i[ show ] do
  #...
end

以便您更快发现错误。

您可以自己解决这个问题,方法是 rake routes 并寻找您感兴趣的表演动作。