0

在rails中实现pinterest(对象集合)中的板之类的最佳方法是什么。我正在尝试使用它,它似乎更像是一个数组实现。这是我的关联逻辑:用户有很多收藏,用户有很多别针,收藏属于用户。

用户类

class User < ActiveRecord::Base
  has_many :pins, through: :collections
  has_many :collections  
end 

引脚类

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
4

2 回答 2

1

您必须为此使用嵌套属性。

检查这个http://currentricity.wordpress.com/2011/09/04/the-definitive-guide-to-accepts_nested_attributes_for-a-model-in-rails-3/

基本上你需要的是:

# collection model
accepts_nested_attributes_for :pins

# view, see also nested_form in github
f.fields_for :pins
于 2013-06-18T17:42:30.290 回答
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
于 2013-06-18T17:54:01.723 回答