Вопрос

После следования руководство Я нашел.Сейчас я переделываю это снова, без строительных лесов, чтобы лучше выучить.

Однако отредактируйте мой \app\views\home\index.html.erb, чтобы он содержал:

<h1>Rails test project</h1>
<%= link_to "my blog", posts_path>

Я получаю сообщение об ошибке:

undefined local variable or method `posts_path' for #<ActionView::Base:0x4e1d954>

Прежде чем сделать это, я побежал rake db:create, определил класс миграции и запустил rake db:migrate, все без проблем.

Таким образом, база данных должна содержать таблицу сообщений.Но затем link_to команда не может найти posts_path.Эта переменная (или это вообще функция?), вероятно, определяется с помощью подпрограммы scaffold.

Теперь мой вопрос:как мне сделать это вручную самому, определить posts_path?

Это было полезно?

Решение

Вам нужно будет определить путь к вашим сообщениям в config/routes.rb

Синтаксис Rails 2.x:

map.resources :posts

Синтаксис Rails 3.x:

resources :posts

Другие советы

Методы _path обычно генерируются динамически.Ошибка отсутствия метода возникает, когда отсутствует маршрут к указанному объекту или, в данном случае, к методу, который вы вызываете явно.

Определение маршрута должно исправить это.Выше HermanD показал один из способов сделать это.

Вы можете запустить «rake маршруты» из корня вашего приложения Rails, чтобы увидеть все настроенные маршруты.

<%= link_to "мой блог", пути_сообщений>

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top