索引被重定向到“显示视图”

时间:2013-06-28 19:54:04

标签: ruby-on-rails model-view-controller routing

当我转到/ relationships / index时,即使控制器中没有提到它,它也会显示显示页面?然后,当我尝试在没有创建显示页面的情况下转到索引视图时,我收到以下错误:未知操作:无法在关系控制器中找到操作“show”,即使在控制器或视图中没有提及它也是如此该行动的文件。

的routes.rb

Mymanual::Application.routes.draw do

  resources :validation_rules

  resources :validations

  resources :product_types

  resources :products

  resources :connections

  resources :relationships

  root :to => 'products#index'
end

relationships_controller.rb

class RelationshipsController < ApplicationController

    def index
    end

    def new
        @relationship = Relationship.new
    end
end

然后只是index.html.erb,show.html.erb和new.html.erb文件中的HTML。

3 个答案:

答案 0 :(得分:0)

这是因为/relationship路径适用于relationships#index。如果您转到/relationships/index,Rails路由器会假定您要使用relationships#show转到params[:id] == 'index'路径。

答案 1 :(得分:0)

即使您需要index操作,也不要在网址中输入index。否则,它会认为您要查找ID为Relationship的{​​{1}}。

所以只需转到index

答案 2 :(得分:0)

转到控制台然后运行:

rake routes

它会为您提供应用理解的所有路线

在这条路线的某个地方你会有类似的东西:

relationships    relationships#index  /relationships
relationship     relationships#show   /relationships/:id

您遇到的问题是该应用将 / relationships / index 理解为与 id = index

的关系

修复?使用/relationships网址