1

我是 Rails 新手,现在正在努力学习,希望有人能提供帮助。

我有 3 个用于用户、意见和投票的模型,具有一对多的关系。每个user has_many :opinionshas_many :votes。每个opinion has_many :votesbelongs_to :user。每个vote belongs_to userbelongs_to opinion。Votes 表包含 :decision (boolean)、:opinion_id 和 :user_id 列。意见表只有 :content 列。

我的用例是用户添加意见,然后其他用户在查看每个意见(显示视图)时可以同意或不同意它。

在意见显示视图中,我希望有两个带有“同意”和“不同意”的提交按钮。当用户提交投票时,我需要创建此投票(真或假)并更新投票表的 user_id 和 opinion_id 字段。我设法为每个父母单独做这件事,但不是为了同一张票。任何帮助将非常感激。

4

1 回答 1

0

将两个 id 都包含为隐藏字段。

意见显示视图:

<%= form_for(@vote) do |f| %>
<%=   f.hidden_field :user_id, :value => @user.id %>
<%=   f.hidden_field :opinion_id, :value => @opinion.id %>
<%=   submit_tag 'Agree', :name => 'agree_button' %>
<%=   submit_tag 'Disagree', :name => 'disagree_button' %>
<% end %>`

投票控制器:

def create
  @vote = Vote.new(params[:vote])
  if params[:agree_button]
    @vote.agreement = 1
  elsif params[:disagree_button]
    @vote.agreement = -1
  end
  flash[:notice] = "Thank you for your vote." if @vote.save
  redirect_to( opinion_path( @vote.opinion_id )) 
end
于 2011-07-20T11:00:52.463 回答