Я новичок в рельсах и подумал, что наконец-то разобрался с некоторыми из этих вещей про маршрутизацию, но ходил кругами с этим битом весь день.
Я следовал учебному пособию по созданию сервиса, подобного твиттеру, и у меня есть основы, работающие из учебного пособия, но с Mongo вместо mySql.
У меня есть 3 типастраницы.Домашняя страница, на которой отображаются все сообщения, упорядоченные по дате
Страница пользователя, на которой отображаются сообщения определенного пользователя
Страница сообщений, на которой отображаются сообщения друзей пользователя.
Итак, для каждой страницы я сделал следующее
1) создал метод в соответствующем контроллере для получения правильных сообщений
2) создал _posts.html.erbстраница с параметрами отображения, которые немного отличаются на каждой странице
3) ссылается на частичное на странице index.html.erb для каждого представления.
*1018* Записи контроллера выглядят следующим образом
def index
@posts = Post.all(:order => 'created_at DESC')
end
или
def posts
@posts = Post.all(:conditions => {'user_id' => params[:id]}, :order => 'created_at DESC')
end
и частями являются
<%= render :partial => @posts %>
В каждом представлении есть файл _posts.html.erb, и каждый немного отличается
home / _posts.html.erb выглядит следующим образом
<%= div_for post do %>
Posted <%= time_ago_in_words(post.created_at) %> ago
Posted By <%= post.user_id %>
<%= post.text %>
<% end %>
в то время как posts / _post.html.erb выглядит следующим образом
<%= div_for post do %>
Posted By <%= post.user_id %>
<%= post.text %>
<% if post.created_at > 52.hours.since %>
<%= distance_of_time_in_words_to_now(post.created_at) %>
<% else %>
<%= post.created_at.strftime("%c") %>
<% end %>
<% end %>
Теперь странная часть такова, что на всехстраницы index.html.erb, users / show.html.erb, posts / index.html.erb, частичноеОтображается это posts / _post.html.erb.Остальные полностью игнорируются.
Насколько я понимаю, рендер: частичный будет брать @posts и рендерить _posts.html.erb из текущего представления.Но этого не происходит, так как из всех представлений выводится только posts / _post.html.erb.
Я посмотрел в файле rout.rb, но там нет ничего, чтоможет вызвать эту проблему.
Кто-нибудь может сказать мне, почему я не отображаю правильные партиалы?
----------- Отредактировано --------------------------------
Структура каталогов для представлений выглядит следующим образом
views
- home
-_post.html.erb
-index.htlm.erb
- layouts
- posts
-_post.html.erb
-index.html.erb
-posts.html.erb
- sessions
- users
-_post.html.erb
-new.html.erb
-show.html.erb
Я надеюсь, чтопомогает.