Синтаксис Ruby on Rails link_to
-
23-08-2019 - |
Вопрос
После следования руководство Я нашел.Сейчас я переделываю это снова, без строительных лесов, чтобы лучше выучить.
Однако отредактируйте мой \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, то в конце элемента скриптлета отсутствует знак процента.Не уверен, что это стало причиной вашей проблемы, или, может быть, я воспринимаю вещи слишком буквально....