在rails中实现类似于pinterest(对象集合)的板子的最佳方法是什么?我试图用它,它似乎更像是一个数组实现。 这是我的关联逻辑:用户有很多集合,用户有很多针,集合属于用户。
用户类
class User < ActiveRecord::Base
has_many :pins, through: :collections
has_many :collections
end
Pins class
class Pin < ActiveRecord::Base
belongs_to :user
has_many :collections
end
收藏类
class Collection < ActiveRecord::base
belongs_to :user
end
所以现在我的困惑是,如何实现一个控制器,它允许我创建一个集合并在这个集合对象中,创建或推送引脚并将它们保存为current_user的另一个对象。希望我有意义
这是控制器
class CollectionsController < ApplicationController
def create
@collection = current_user.collections.new(params[:collection])
#this where i'm confused , if it an array , how to implement it , to push or create a pin object inside ?
end
end
答案 0 :(得分:1)
您必须为此使用嵌套属性。
基本上你需要的是:
# collection model
accepts_nested_attributes_for :pins
# view, see also nested_form in github
f.fields_for :pins
答案 1 :(得分:0)
您正在寻找has_many_through
关联。请参阅Rails指南中的第2.4节:http://guides.rubyonrails.org/association_basics.html
class User < ActiveRecord::Base
has_many :collections
end
class Pin < ActiveRecord::Base
has_many :collections, through: :pinnings
end
class Pinning < ActiveRecord::Base
belongs_to :pin
belongs_to :collection
end
class Collection < ActiveRecord::base
belongs_to :user
has_many :pins, through: :pinnings
end