メンバーは、メンバーと別のモデルである課題の両方に属する投票を作成します。現在、非表示のフォームでこれを行い、適切なパラメーターを渡しています。問題のインデックス ビューのコードは次のとおりです。
<%= form_for(@vote) do |f| %>
<%= f.hidden_field "issue_id", :value => issue.id %>
<%= f.hidden_field "member_id", :value => session[:member_id] %>
<%= f.hidden_field "type", :value => :Upvote %>
<%= f.label issue.upvotes_count(issue.id) %>
<%= submit_tag "Up", :class => 'up-vote' %>
<% end %>
これは、issue_id と member_id を一括割り当てできる状態のままにするため、理想的ではないようです。button_to タグなどでこれを行うより良い方法はありますか?
コントローラーのコードは次のとおりです。
class VotesController < ApplicationController
#GET
def new
@vote = Vote.new
end
# POST
def create
@vote = Vote.new(params[:vote])
@vote.member_id = current_member
if @vote.save
redirect_to issues_path
else
redirect_to issues_path, notice: "you must be logged in to vote"
end
end
end
と
class IssuesController < ApplicationController
# GET
def index
@issues = Issue.find(:all)
@vote = Vote.new
end
# GET
def show
@issue = Issue.find(params[:id])
respond_to do |format|
format.html
format.js
end
end
end