рельсы 3 контроллера пространства имен и маршрутизации - PullRequest
3 голосов
/ 15 февраля 2012

У меня проблема с контроллером пространства имен и маршрутизацией. У меня следующий маршрут в пространстве имен.

  namespace :institution do
    resources :students
  end

вместе с

  resources :students, :only => [] do
    resources :college_selections, :only =>[:index, :create, :update]
    resources :progress, :only => [:index] do
      collection {get 'compare'}
    end
    resources :marks
  end

сгенерировал следующие маршруты

       institution_students GET    /institution/students(.:format)                 {:action=>"index", :controller=>"institution/students"}
                            POST   /institution/students(.:format)                 {:action=>"create", :controller=>"institution/students"}
    new_institution_student GET    /institution/students/new(.:format)             {:action=>"new", :controller=>"institution/students"}
   edit_institution_student GET    /institution/students/:id/edit(.:format)        {:action=>"edit", :controller=>"institution/students"}
        institution_student GET    /institution/students/:id(.:format)             {:action=>"show", :controller=>"institution/students"}
                            PUT    /institution/students/:id(.:format)             {:action=>"update", :controller=>"institution/students"}
                            DELETE /institution/students/:id(.:format)             {:action=>"destroy", :controller=>"institution/students"}

У меня есть контроллер студентов в каталоге учебного заведения в каталоге приложений. И имеет следующую структуру.

class Institution::StudentsController < ApplicationController
  before_filter :require_login
  load_and_authorize_resource
..........
.........
end

Теперь, когда я пытался перенаправить страницу показа учащимся с помощью вспомогательного метода link_to, как показано ниже

<%= link_to "show", institution_student_path(student) %> 

затем он показал проводную связь с точкой (.) В нем. Скажите, что идентификатор студента равен 100, и он сгенерировал маршруты, подобные этому

institution/students/4.100 

здесь 4 - это текущая организация, я думаю. Почему создаются такие маршруты.

И когда я нажимаю на ссылку показать, это дает мне ошибку, говоря

Expected /home/gagan/projects/App_name/app/Institution/students_controller.rb to define StudentsController

Что мне здесь не хватает.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Не бери в голову, я получил ответ.На самом деле я помещал папку учреждения вне папки контроллера, что было причиной того, что контроллер внутри этой папки не распознается.Отсюда решена проблема.

1 голос
/ 15 февраля 2012

вы должны использовать

<%= link_to "show", institution_student_path(institution, student) %>

или

<%= link_to "show", institution_student_path(student.institution, student) %>

, если существует связь между студентом и учебным заведением.

...