0

A と B の 2 つのリソースがあり、それらの間に多対多の関係があります。A の表示ビューでボタンを押すと、A オブジェクトとビューからもアクセスできる B オブジェクトとの関係を確立したいと考えています。

Rails3でこれを行うにはどうすればよいですか?

編集:関係の関連するスニペット。それ以外はすべて標準で生成されますrails generate scaffold

class Course < ActiveRecord::Base
  ...
  has_many :course_auth_users
  has_many :students, :through => :course_auth_users, :source => :user
  ...
end


class User < ActiveRecord::Base
  ...
  has_many :course_auth_users
  has_many :enrolled_on_courses, :through => :course_auth_users, :source => :course
  ...
end
4

1 に答える 1

2

私はあなたがそのようなモデルを持っていると仮定しています

class CourseAuthUser < ActiveRecord::Base
  belongs_to :user
  belongs_to :course
end

また、オブジェクト A と B が既に作成されていることを意味していると思います。Users コントローラーには、次のようにリストにコースを追加するアクションが必要です。

class UsersController < ApplicationController
  def enroll_course
    @student = User.find(params[:id])
    @course = Course.find(params[:course])  

    @student.enrolled_on_courses << @course

    @student.save!
  end
end

コントローラー部分は、リクエストパラメーターで user_id と course を渡していると想定していることに注意してください。

これが役立つかどうか教えてください。あなたの要件が何であるかはよくわかりませんでした。

于 2012-10-22T17:25:42.933 に答える