Компоновка в Rails

#ruby-on-rails

#ruby-on-rails

Вопрос:

Я новичок в rails и создаю базовое приложение для ведения блога.

Когда я создал сообщение, у него есть автор. Если вы найдете автора, он отобразит список записей, которые были созданы этим автором на их собственной отдельной странице. Каждая из этих ссылок может быть выбрана.

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

На данный момент я добавил следующий код для просмотра страниц:

 <%= link_to 'Back to List of Authors', authors_path %>
  

Теперь я не уверен, как это изменить, чтобы вместо этого, если сказать 'Back to List of Authors' , отображалось имя автора и позволяло его выбрать и возвращало пользователя на отдельную страницу автора. В настоящее время это возвращает вас к полному списку авторов, а не к отдельному автору.

Любой совет будет оценен по достоинству.

Ответ №1:

Что-то вроде этого должно сработать:

 <%= link_to "Back to #{@post.author.name} page", @post.author %>
  

Это работает в предположении, что у вас есть переменная экземпляра @post , которая содержит данные post, и автор принадлежит post_to.

Конечно, более подробный способ — явно указать маршрут следующим образом:

 <%= link_to "Back to #{@post.author.name} page", author_path(@post.author) %>
  

Комментарии:

1. Теперь я получил обратную ссылку на отдельную страницу автора, но в ссылке не отображается имя автора. Код в настоящее время: <%= link_to «Вернуться к {@author.name } Страница», @page.author %>. Я пробовал ставить # раньше, но тогда ссылка вообще не работает.

2. Ну, я не знаю, как настроена ваша авторская модель, вы должны просто иметь возможность сделать @post.author . {identifier_here}

Ответ №2:

 <%= link_to "Back to author #{@author.name}", author_path(@author) %>
  

предполагая, что @author является объектом Author

Ответ №3:

У вас должна быть ссылка на конкретного автора. authors_path — это путь к действию index для контроллера Authors (в котором перечислены все авторы). Вы можете сделать это как:

 <%= link_to @author.name, author_path(@author.id) %>
  

или, более кратко:

 <%= link_to @author.name, @author %>
  

Это даст путь к действию show для контроллера авторов.

Проверьте http://guides.rubyonrails.org/routing.html (и другие руководства хороши) для получения дополнительной информации.

Редактировать: Как и в других упомянутых ответах, предполагается, что @author является вашим объектом Author.