我有具有以下模型和关系的Rails 5.2 API应用程序:
class User < ApplicationRecord
validates :email ,presence: true
validates :name ,presence: true
has_many :user_courses, class_name: "UserCourse", dependent: :destroy
has_many :courses, through: :user_courses
end
class UserCourse < ApplicationRecord
belongs_to :user, class_name: "User", foreign_key: "user_id"
belongs_to :course, class_name: "Course", foreign_key: "course_id"
end
class Course < ApplicationRecord
validates_presence_of :title
validates_presence_of :author
validates_presence_of :language
has_many :user_courses, class_name: "UserCourse", dependent: :destroy
has_many :users, through: :user_courses
end
在活动管理系统中,我想在user.rb csv中创建每个用户的user_course中的数据。 如果用户没有user_course,则所有这些列将为空。
用户列:ID,名称,电子邮件
user_courses的列:course_name,completed_lessons,进度
我想要一个包含所有这些列的csv,但我不知道如何编写。 这是我到目前为止所做的,但是没有用:
## user.rb in admin
# Customize CSV export
csv do
column ("User id") { |user| user.id }
column ("User Name") { |user| user.name }
column ("Email") { |user| user.email }
# fetch only 'courses' that are assosicate with users scope
if user.user_courses
user.user_courses.each do |user_course|
column ("Course Name") { |uc| uc.course_name }
column ("Completed Lessons") { |uc| uc.completed_lessons }
column ("Progress") {|uc| uc.progress }
end
end
column :created_at
column :updated_at
end
先谢谢您