现在我有俩个模型
模型1
class Course < ActiveRecord::Base
has_many:datum
end
Course 的主键是默认的 id,还有一个键是 course_id
模型2
class Datum < ActiveRecord::Base
belongs_to:course
end
datum 的主键也是键是默认的 id
现在想实现课程和资料的对应,Course.first.datum 显示第一个课程对应资料,在不修改 course 的默认主键 id 的情况下如何实现?谢谢了!
#2 楼 @kai209209 谢谢解答,按 1L 的说话解决了,但是不是我想要的,还有就是 datum 是 data 的复数,不用加 s
2.1.2 :006 > Course.first.datum
Course Load (0.3ms) SELECT "courses".* FROM "courses" ORDER BY "courses"."id" ASC LIMIT 1
Datum Load (0.1ms) SELECT "data".* FROM "data" WHERE "data"."course_id" = ? [["course_id", 1]]
=> #<ActiveRecord::Associations::CollectionProxy [#<Datum id: 1, course_id: "1", content: "啧啧啧啧啧啧!", data_type: "讲义", student_id: "2011se021", created_at: "2014-11-05 16:33:41", updated_at: "2014-11-16 05:25:50", name: nil>]>
2.1.2 :007 >
#3 楼 @flowerwrong 谢谢解答,因为我 rails g scaffold data,然后他的模型就边成 datum,可能 data 这次比较特殊吧,我英语也没学好,哈哈!
Course Load (0.3ms) SELECT "courses".* FROM "courses" ORDER BY "courses"."id" ASC LIMIT 1
Datum Load (0.1ms) SELECT "data".* FROM "data" WHERE "data"."course_id" = ? [["course_id", 1]]
courses 对应 data,所以至少在 Rails 里,data 是复数,8 楼 正解。生成一个 Datum 模型也正确,因为模型的类名是单数的。
irb(main):029:0* Custom.new
=> #<Custom id: nil, custom_id: 0, created_at: nil, updated_at: nil>
irb(main):030:0> Order.new
=> #<Order id: nil, custom_id: 0, created_at: nil, updated_at: nil>