我有兩個模型,用戶和課程。如何選擇具有其他對象實例的所有對象(has_many和has_one關聯)?
用戶has_many
課程。 課程has_one
用戶。
現在我抓住所有用戶並在課程索引頁上顯示它們,但是,我意識到我應該只顯示有課程的用戶。我不確定如何做到這一點?
下面是從課程控制器我的索引方法:
#courses_controller.rb
def index
@courses = Course.all
@users = User.all
end
這裏是我的模型:
# user.rb
class User < ApplicationRecord
# User has many courses
has_many :courses, dependent: :destroy
end
# course.rb
class Course < ApplicationRecord
has_one :user
validates :user_id, presence: true
end
而且我的架構:
ActiveRecord::Schema.define(version: 20170505114247) do
create_table "courses", force: :cascade do |t|
t.string "name"
t.string "prerequisite"
t.text "description"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "picture"
t.index ["user_id", "created_at"], name: "index_courses_on_user_id_and_created_at"
t.index ["user_id"], name: "index_courses_on_user_id"
end
create_table "users", force: :cascade do |t|
t.string "name"
t.string "email"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "password_digest"
t.index ["email"], name: "index_users_on_email", unique: true
end
end
請分享您的架構。你的「課程」和「用戶」如何連接?應該有many_to_many關係。 –
用戶當然也是課程的導師?你說每個課程只有一個用戶。 –
嗨,我添加了架構。該協會是一對多。課程屬於用戶。 – helpmeplz