2017-01-18 3 views
2

В основном я создал контроллер, модель и просмотр объектов. В основном у меня есть 6 действий внутри моего контроллера и настройка REST внутри файла маршрутов для маршрутизации нужного файла.Rails REST не отображает/загружает правую страницу - Ruby on Rails

Когда я вошел, http://localhost:3000/subjects/index он показывает мне вид на show.html.erb вместо index.html.erb

Вот что мой предмет контроллер выглядит следующим образом:

class SubjectsController < ApplicationController 
    def index 
    @subjects = Subject.sorted 
    end 

И вот содержимое моего файла index.html.erb.

<% @page_title = "All Subjects" %> 

<div class="subjects index"> 
<h2>Subjects</h2> 

<%= link_to("Add New Subject", new_subject_path, :class => "action_new") %> 

<table class="listing" summary="Subject list" border="1"> 
<tr class="header"> 
<th>#</th> 
<th>Subject</th> 
<th>Visible</th> 
<th>Pages</th> 
<th>Actions</th> 
</tr> 

<% @subjects.each do |subject| %> 
<tr> 
    <td><%= subject.position %> </td> 
    <td><%= subject.name %> </td> 
    <td class="center"><%= status_tag(subject.visible) %></td> 
    <td class="center"><%= subject.pages.size %> </td> 
    <td class="actions"> 
    <%= link_to("View Pages", pages_path(:subject_id => subject.id), :class => 'action show') %> 
    <%= link_to("Show", subject_path(subject), :class => 'action show') %> 
    <%= link_to("Edit", edit_subject_path(subject), :class => 'action edit') %> 
    <%= link_to("Delete", delete_subject_path(subject), :class => 'action delete') %> 
    <td> 
    </tr> 
    <% end %> 
    <table> 
</div> 

Кроме того, вот что я устанавливаю на моих маршрутах:

resources :subjects do 
    member do 
     get :delete 
    end 
    end 

Любая идея, что мне не хватает?

ответ

2

Ответ прост: чтобы получить доступ к индексной странице, вам нужно ударить по следующему адресу:

http://localhost:3000/subjects 

Очевидно, что он будет с GET

Причиной, почему вы получили ошибку это: так, ничего формат subjects/:id приведет вас к show действиям в SubjectsController, поэтому Rails интерпретирует subjects/index, как вы пытаетесь получить доступ к странице subjects/:id с index, как id субъекта. Здесь нет ничего плохого в Rails, поскольку в веб-службах RESTful вы получаете доступ к индексной странице ТОЛЬКО с использованием множественного имени ресурса, например, в вашем случае http://localhost:3000/subjects

+0

Привет благодарен за ответ. Я получил это при доступе к нему. http://prnt.sc/dx796n –

+0

Nevermind. он работает сейчас. –