Синтаксис Ruby on rails link_to - PullRequest
       24

Синтаксис Ruby on rails link_to

9 голосов
/ 13 февраля 2009

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

Однако редактирование моего \ 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?

Ответы [ 3 ]

21 голосов
/ 13 февраля 2009

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

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

map.resources :posts

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

resources :posts
5 голосов
/ 06 июня 2010

<% = link_to "мой блог", posts_path>

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

5 голосов
/ 14 февраля 2009

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

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

Вы можете запустить 'rake маршруты' из корня приложения rails, чтобы увидеть все настроенные маршруты

...