0

我有两个资源,A 和 B,它们之间存在多对多关系。当按下 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 已经创建。您的用户控制器应该有一个将课程添加到其列表中的操作,如下所示:

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 和一个课程。

让我知道这是否有帮助。我不太确定你的要求是什么。

于 2012-10-22T17:25:42.933 回答