我需要加入这两张桌子,但我似乎无法做到这一点。
模型
class Registration < ActiveRecord::Base
has_many :region
end
class Region < ActiveRecord::Base
belongs_to :registration
end
`test = Region.joins(:registration)`
这会给我这个结果
[#<Region id: 1, name: "region1">, #<Region id: 1, name: "region1">]
似乎我确实加入了这两个表,但我的困境是我还需要属于注册模型的索引。 about结果只是Region Model中可用的索引。
我也尝试过相反的方式
test = Registration.joins(:region)
但它给了我一个错误
Unknown column 'regions.registration_id' in 'on clause': SELECT
{注册{1}} {注册{1}} {区域{1}} {区域{1}} {registration_id {1}} {注册{1}} id``
我确实同意这个错误,因为我没有索引registration_id
答案 0 :(得分:0)
当你在表中定义belongs_to关系时,表应该具有它所属的表的foreign_key。因此,在您的示例中,如果您有像Region属于注册的关系,则区域应该具有registration_id。看起来你已经定义了错误的关系。
因此,如果您将在Region中定义registration_id并执行以下查询:
Region.joins(:registration)
您将在结果
中看到区域表的id以及registration_id希望这有帮助
答案 1 :(得分:0)
更改$('input[id^=date]').on('blur', function() {
var lastUsedDateInputValue = $(this).val();
});
代码
Registration model
然后您可以使用class Registration < ActiveRecord::Base
has_many :regions
end
joins
希望它有所帮助!
答案 2 :(得分:0)
class Registration < ActiveRecord::Base
has_many :regions, inverse_of: :registration, dependent: :destroy
end
class Region < ActiveRecord::Base
belongs_to :registration, inverse_of: :regions
end
然后,请确保您的Region
表格正确显示其与Registration
列的关联registration_id
。如果它不包含该列,请继续创建以下迁移:
rails g migration add_registration_ref_to_regions registration:references
rake db:migrate
现在,您应该可以通过以下方式成功查询:
Registration.joins(:regions)
或Region.joins(:registration)
干杯!