Я не могу понять, как форматировать код здесь. Я повторил вопрос здесь (более хорошим способом): http://railsforum.com/viewtopic.php?id=43839
Иметь простой сайт микросообщений с функцией голосования. Я хочу, чтобы можно было отображать опубликованные микросообщения по адресу voices.size. Я не могу заставить его работать, и был бы признателен за некоторые рекомендации.
МОДЕЛЬ:
class Micropost
attr_accessible :content
has_many :votes
belongs_to :user
default_scope :order => 'microposts.created_at DESC'
class Vote
belongs_to :micropost
МНЕНИЯ:
# microposts page
<% unless @picture.microposts.empty? %>
<table class="microposts" summary="User microposts">
<%= render @microposts %>
</table>
<% end %>
# microposts partial
<tr>
<td class="micropost">
<span class="gravatar">
<%= link_to gravatar_for(micropost.user, :size => '60'), micropost.user %>
</span>
<span class="content" >
<%= micropost.content %>
</span>
<span id="vote_total_<%= micropost.id %>" class="micropost_votes">
votes:<%= micropost.votes.size %>
</span>
<% if current_page?(root_path) && signed_in? %>
<span id="vote_button">
<%= button_to 'vote', micropost_votes_path(:micropost_id => micropost),
:remote => true
%>
</span>
<% end %>
</td>
</tr>
КОНТРОЛЛЕРЫ:
# VotesController
def create
@micropost = Micropost.find(params[:micropost_id])
@vote = @micropost.votes.build params[:micropost_id]
respond_to do |format|
if @vote.save
format.html { redirect_to @micropost }
format.js
else
format.html { redirect_to root }
end
end
end
Мне удалось отсортировать микросообщения по дате создания, но я не могу отсортировать микросообщения по micropost.votes.size Похоже, что-то связано с заказом одной модели на основе состояния другой модели.