У меня есть часть в моем приложении rails, которая загружает форму голосования (это просто выбор с номерами в диапазоне от 1 до 5). Сейчас я делаю еще один фрагмент, который загружается, если пользователь уже проголосовал. Предположим, это будет EDIt, где вы выбираете значение, за которое проголосовали, и, если хотите, можете его изменить. Но по какой-то причине не работает, вот код для этого.
#Finds the vote by passing the user and the article
<%= @vote = Vote.find_vote_by(current_user,@article) %>
#Renders the partial with the vote variable loaded up with the vote that was found
<%= render :partial => "votes/edit_vote", :locals => {:vote => @vote} %>
И это частичное
<% form_for(vote, :url => {:controller => 'votes', :action => 'edit'}) do |f| %>
<%= error_messages_for :vote %>
<p><%= f.hidden_field :article_id %></p>
<p>
<%= f.label :value, "Value for the vote: "%>
<%= f.select :value, {"1" => "1","2" => "2","3" => "3","4" => "4", "5" => "5"}, :selected => vote.value %>
</p>
<p>
<%= f.submit "Cloud-it!" %>
</p>
<% end %>
Но по какой-то причине переменная голосования не содержит ничего, кроме article_id, метода значения, каких-либо идей?
EDIT1: для каждого запроса выводится отладка, которую @vote выводит (если это действительно нормальное значение)
attributes:
created_at: 2010-09-02 14:39:04
updated_at: 2010-09-02 14:39:04
id: 1
value: 4
article_id: 1
user_id: 1
attributes_cache: {}
EDIT2
Я попытался очистить частичный код, чтобы вывести это:
<%= debug @vote%>
<%= @vote.value %>
Если я отлаживаю @vote, все получится идеально, будут все атрибуты и все такое. Но всякий раз, когда я добавляю вторую строку, она не работает, она говорит мне, что нет .value, я пробовал .id, .article, и ничто не так, как если бы его не было. Есть идеи?
EDIT3
Вот голосование
named_scope :find_vote_by, lambda {|user,article| {:conditions => {:user_id => user, :article_id => article}}}