尝试实现has_and_belongs_to_many关系一个文档有很多组 一组有很多文件
连接表调用documents_group created
模型
class Group < ActiveRecord::Base
has_many :users
has_and_belongs_to_many :documents
end
模型2
class Documents < ActiveRecord::Base
belongs_to :user
has_and_belongs_to_many :groups
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
before_post_process :resize_images
def image?
avatar_content_type =~ %r{^(image|(x-)?application)/(bmp|gif|jpeg|jpg|pjpeg|png|x-png)$}
end
private
def resize_images
return false unless image?
end
end
控制器创建 def创建 @document = Documents.all
@document = Documents.create( params[:document] )
@document.user_id = current_user.id
@document.save
redirect_to root_path
end
迁移
def self.up
create_table :documents_groups ,:id => false do |t|
t.integer :documents_id
t.integer :group_id
end
end
现在我想访问所有文件coreespond到一个群组怎么做
答案 0 :(得分:2)
要访问组的所有文档,只需在特定组模型上调用#documents
即可。例如:
Group.find(params[:id]).documents #=> Collection of groups documents as Array
您可能会遇到问题,因为您似乎从未将新文档分配给组。您可以通过多种方式执行此操作,一种可能的方法是在@document.save
DocumentsController#create
之前添加以下内容(假设您有一个名为group_id
的参数)
@document.group = Group.find(params[:group_id])