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

时间:2016-12-07 22:36:38

标签: ruby-on-rails show ruby-on-rails-5 rails-routing link-to

我正在使用Rails 5.我无法链接到控制器中的show方法。我在我的config / routes

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

在视图中,我把这个

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

在我的控制器中我有show方法

class ScenariosController < ApplicationController

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

但是当我点击链接时,我收到了错误

The action 'index' could not be found for ScenariosController

如何获取我的演出动作链接?

1 个答案:

答案 0 :(得分:1)

scenarios_path使用复数&#34;情景&#34;所以它正在寻找几个场景,并映射到index动作,因此你的错误。要显示单个场景,您需要使用单数形式:

scenario_path(subscription.scenario)

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

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

以便您尽快发现错误。

您可以通过执行rake routes并查找您感兴趣的节目动作来自行解决此问题。