Rails 3 Routes / Render Missing Template - PullRequest
       1

Rails 3 Routes / Render Missing Template

1 голос
/ 01 апреля 2011

Итак, у меня есть простая форма Rails, которая отправляется на контроллер admin, действие checkLogin. Если учетные данные верны, перенаправьте пользователя в новое представление с именем main.html.erb. Теперь в моем контроллере я буквально все перепробовал, начиная с render 'main'; до redirect_to. Но я продолжаю получать следующую ошибку:

ActionView::MissingTemplate (Missing template admin/activate with {
  :handlers=>[:rjs, :rhtml, :rxml, :builder, :erb],
  :formats=>[:js, :"application/ecmascript", :"application/x-ecmascript", :"*/*"],
  :locale=>[:en, :en]} in view paths "/home/xxx/xxx/xxx/rails/beta/app/views"

Это проблема маршрутизации или что?

Ответы [ 2 ]

1 голос
/ 01 апреля 2011

Попробуйте render :file => 'admin/main.html.erb', чтобы указать точный файл.

Проблема в том, что вызов рендеринга ищет файл, который соответствует имени действия вашего контроллера, и не находит его. Итак, укажите точный файл, и все должно быть в порядке.

К вашему сведению, если вы позвоните render 'main', он попытается отобразить представление, связанное с вашим "основным" действием, которое может не сработать, если у вас нет "основного" действия.

Кроме того, убедитесь, что вы хотите визуализировать. Если у вас действительно есть основное действие, и вы хотите, чтобы материал, определенный в этом действии, имел место, тогда вам нужно redirect_to main_whatever_path.

0 голосов
/ 01 апреля 2011

Вы добавили 'checkLogin' к маршрутам. попробуйте это в ваших маршрутах.rb

resources :admin do
  member do
    get 'checkLogin'
  end
end

** ПРИМЕЧАНИЕ: get 'checkLogin' может быть объявлен как 'checkLogin' в зависимости от вашего случая.

и внутри действия вашего контроллера 'checkLogin' визуализируйте частичный

render :partial => 'main'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...