У меня есть пользователи и проблемы, к которым присоединяется has_many через модель, называемую избирателей.Пользователи голосуют по вопросам.Пользователь может голосовать "за" или "против", а модель соединения содержит user_id и issue_id.Однако, когда я иду, чтобы создать новый голос, создается только один из столбцов.Я знаю, что делаю это неправильно.Вот мои файлы:
class Issue < ActiveRecord::Base
has_many :associations, :dependent => :destroy
has_many :users, :through => :associations
has_many :voterships
has_many :users, :through => :voterships
belongs_to :app
def cast_vote_up!
voterships.create!(:issue_id => self.id)
end
end
и это в контроллере избирателей:
def create
session[:return_to] = request.referrer
#debugger
@issue = Issue.find(params[:votership][:issue_id])
@issue.cast_vote_up!
redirect_to session[:return_to]
end
модель голосования:
class Votership < ActiveRecord::Base
belongs_to :user
belongs_to :issue
end
и вид с кнопкой голосования:
<%= form_for(@issue.voterships.build(:issue_id => @issue.id)) do |f| %>
<%= f.hidden_field :issue_id %>
<%= f.submit "VoteUp" %>
<% end %>