NameError в my_foos # index неопределенная локальная переменная или метод 'foo_bar_my_foos_path' - PullRequest
0 голосов
/ 22 января 2012

У меня проблема с пониманием того, как ресурсы RESTFUL работают в Rails 3. Если у меня есть мой файл rails rout.rb:

resources :my_foos do
   member do
      get 'foo_bar'
   end
end

У меня естьфайл контроллера my_foos_controller.rb

class MyFoosController < ApplicationController
   def index
   end

   def foo_bar
   end
end

У меня есть файл представления test.html.erb

<%= foo_bar_my_foos_path %>

Когда я пытаюсь отобразить свой тестФайл .html.erb, я получаю сообщение об ошибке: как в заголовке.

Все, что я вам описал, работает, если я имею дело с ресурсом (в единственном числе), но не с множественными ресурсами.Я что-то упустил в соглашении?

Спасибо

Ответы [ 2 ]

0 голосов
/ 22 января 2012

если foo_bar объявлен как действие члена, тогда, согласно соглашению rails, вам нужно будет предоставить соответствующий идентификатор ресурса модели при использовании именованных маршрутов.что-то вроде этого должно работать

foo_bar_my_foos_path(@my_foos) # or @my_foos.id

Если вы не хотите указывать идентификатор, используйте вместо этого collection в ваших маршрутах.

0 голосов
/ 22 января 2012

Используйте маршруты рейка из командной строки для отображения ваших маршрутов. Самая левая часть каждого маршрута - это название маршрута. Добавьте _path, чтобы он заработал.

...