Я новичок в рельсах, поэтому извините любые легкие вопросы. Я разработал блог, и я делаю некоторые настройки. Просто любопытно, если я хочу отобразить конкретное сообщение на моей странице index.html.erb, это возможно. Например, если я создаю сообщение, заголовок: Cool Post, и у него есть post_id из 25 в таблице, на моей индексной странице я могу вызвать эту конкретную запись для рендеринга?Как создать ссылку на определенный объект Post в представлении Rails?
ответ
Его трудно точно сказать, как система настроена, но «правильный» способ сделать это в Rails, чтобы сделать что-то подобное в Controller
на странице:
def index
@post = Post.find(25)
... Your other code here ...
end
И в вашей index.html.erb
вы можете выводить сообщение:
<h2><%= h(@post.title) %></h2>
<%= h(@post.body) %>
конечно, я полностью гадание на полях по своему @post
Edit: Если все, что вы хотите сделать, это оказать @post
вы все равно хотите получить почту, чтобы вынести в контроллере, но тогда вы будете хотеть использовать частичный и вынести его из index.html.erb
файла:
Гипотетически создайте файл
_post.html.erb
в своем каталогеapp/views/posts/
и поместите туда любой код рендеринга (или отрисуйте его из существующего файлаapp/views/posts/index.html.erb
. _Примечание: обратитесь к сообщению в частичном, используя локальную переменнуюpost
, а не@post
для максимальной гибкости.Затем вызовите ее в
'сообщений/пост',: объект => @post%>index.html.erb
для так:
Этот вызов предполагает файл index.html.erb
не в том же каталоге как _post.html.erb
частичный.
Я думаю, что его вопрос касается рендеринга/перенаправления. Вы должны сделать (в качестве последней строки в контроллере)
render @post
или
redirect_to @post
первым, чтобы показать пост, второй, чтобы показать запись после создания/обновления.
Спасибо, я не понял этого вопроса ... но я снова посмотрел, и ты прав. Я обновил свой вопрос, включив в него немного больше деталей. Надеюсь, это поможет ему! –
В то время как решение dcneiner технически корректно, путь Rails не должен жестко кодировать эти вещи. После того, как блог будет работать, вам придется изменить источник напрямую, чтобы изменить этот пост. Это не рекомендуется.
Я собираюсь предложить добавить дополнительный столбец в таблицу Posts, чтобы обозначить, должна ли Post постоянно отображаться на первой странице. Это позволяет вам динамически обновлять ваши постоянные сообщения только с помощью галочки при ее создании.
Например:
class Post < ActiveRecord
named_scope :featured, :conditions => {:featured => true},
:order => "created_at DESC"
end
Post.featured будет вернуть признаки поста для использования на главной странице, приказал новым к старому.
Если вы хотите только один признаки поста в то время, вы можете добавить следующие модели Post
before_validation :highlander_clause
def highlander_clause
Post.featured.each{|p| p.update_attribute(:featured, false) if featured
end
- 1. Создать ссылку на определенный метод?
- 2. Создать ссылку на объект
- 3. Как создать ссылку на объект в C#?
- 4. Создать ссылку на новый объект
- 5. Как создать постоянную ссылку на объект?
- 6. Глобальный метод, чтобы создать ссылку в представлении
- 7. jquery; создать ссылку, аналогичную rails
- 8. Получить ссылку на определенный объект класса в памяти
- 9. Heroku SocketError на представлении POST
- 10. Javascript: интерпретировать строку как ссылку на объект?
- 11. Как создать произвольную ссылку в Rails?
- 12. Как избежать удаления страницы Rails на ссылку?
- 13. Dozer - создать ссылку на родительский объект
- 14. Создать ссылку на объект для проекта DOORS
- 15. Создать безопасную ссылку POST в express.js
- 16. Rails: ссылки «Next post» и «Previous post» в моем представлении, как?
- 17. Создать ссылку для следующей страницы в rails
- 18. Как создать новый объект из JSON POST?
- 19. как отправить объект Rails на запрос POST в качестве параметра
- 20. Хорошо, чтобы создать объект в представлении?
- 21. Как создать ссылку на json-view объекта в Rails?
- 22. Как создать ссылку на панели управления в контроллере Rails?
- 23. Как создать ссылку на файл .html.erb в Ruby on Rails?
- 24. Как запустить определенный скрипт в представлении haml?
- 25. Как создать ссылку на HTTP POST-действие с помощью Hyprlinkr?
- 26. Как создать ссылку на объект перед элементом объекта в FXML?
- 27. Как создать слабую ссылку на объект в Python?
- 28. Как создать ссылку, которая будет выполнять код js в Rails
- 29. Rails, как создать независимый объект
- 30. Ruby on rails как создать ссылку
Примечания знает, почему у вас есть; после вашего 'Post.find (25)' и более чистого способа вывода 'h' является' <% = h @ post.something%> '. В противном случае это хорошо. – Garrett
@Garret, точка с запятой была потому, что я слишком много кодировал в JavsScript и PHP :) С помощью функции h я думал, что для всех вызовов функций потребуется скобка в Ruby 1.9. Я ошибаюсь? –