【发布时间】:2010-09-17 16:53:00
【问题描述】:
我的 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 %>
但由于某种原因,vote 变量不包含任何东西,除了 article_id,也没有 value 方法,任何想法?
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}}}
【问题讨论】:
标签: ruby-on-rails ruby views voting