これを使用して、ユーザーがエントリに投票できるようにします。
<% form_tag url_for(entry_votes_path(@entry)), :id => 'voting_form', :remote => true do %>
<%= hidden_field_tag 'vote[user_id]', current_user.id %>
<%= submit_tag 'Vote for this entry', :id => 'voting_button' %>
<% end %>
これは私のコントローラコードです:
def create
@entry = Entry.find(params[:entry_id])
@vote = @entry.votes.build(params[:vote])
respond_to do |format|
if @vote.save
format.html { redirect_to @entry }
format.js
end
end
end
2つの質問があります
current_user.id
非表示フィールドを使用せず に割り当てるにはどうすればよいですか?また、私は現在 Vote モデルを使用してい
attr_accessible
ません。attr_protected
誰かが大量の投票を作成できないようにするには、モデルをどのように保護すればよいですか? 現在、Vote モデルのすべてのフィールドはparams
ハッシュによって設定されていますattr_protected
。たとえば、entry_id
外部キーを使用して、コントローラーで個別に設定する必要がありますか?