Я устанавливаю отношения has_many: through в моем приложении Rails 3.2. У меня почти все работает, за исключением того, что я не уверен, как добавить значения к атрибутам в таблице соединений при создании отношений.
Вот модели (обратите внимание на source_id в таблице Checkins ):
create_table "users", :force => true do |t|
t.integer "name"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "checkins", :force => true do |t|
t.integer "user_id"
t.integer "location_id"
t.integer "source_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "locations", :force => true do |t|
t.string "name"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
Вот настройки отношений:
class User < ActiveRecord::Base
has_many :checkins
has_many :locations, :through => :checkins
end
class Location < ActiveRecord::Base
has_many :checkins
has_many :users, :through => :checkins
end
class Checkin < ActiveRecord::Base
belongs_to :location
belongs_to :user
end
Я использую эти инструкции (по сути) для загрузки пользователя и местоположения и создания отношений с проверкой:
source_id = 10
@user = User.first
@location = Location.first
@user.locations << @location
Итак, мой вопрос: как мне также добавить значение source_id в таблицу Checkins при использовании этой строки:
@user.locations << @location
Я также открыт для предложений относительно лучшего процесса создания новых пользовательских проверок с этим отношением, чем у меня (я видел используемые методы create и build, но никто, похоже, не работает для меня)