我有两个资源,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
答案 0 :(得分: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和课程。
如果这有帮助,请告诉我。我不太确定你的要求是什么。