Если в вашей модели соединения есть какие-либо поля, кроме внешних ключей, то вам не следует использовать отношения HABTM. Вы должны создать промежуточную модель, такую как Opinion, и связать каждую модель следующим образом:
class Event < ActiveRecord::Base
has_many :opinions
has_many :users, :through => :opinions
end
class User < ActiveRecord::Base
has_many :opinions
has_many :events, :through => :opinions
end
class Opinion < ActiveRecord::Base
belongs_to :user
belongs_to :event
end
Обновление:
Чтобы добавить мнения, вы, вероятно, захотите создать интерфейс RESTful. Я бы начал с добавления вложенного маршрута в пользователях, событиях или обоих
map.resources :users do |user|
user.resources :opinions
end
Затем добавьте контроллер мнений со своими стандартными действиями RESTful (новые, создание, редактирование, обновление и т. Д.) И соответствующими представлениями. Существует множество ресурсов о том, как создать стандартный интерфейс restful, но я бы начал с них:
http://guides.rubyonrails.org/routing.html#resource-routing-the-rails-default
http://guides.rubyonrails.org/routing.html#nested-resources