私はWordpressデータモデルをActiにマッピングするのと同じ課題を抱えていましたベレコード。
アリGesherの答えは非常に役に立ちましたが、私はバニラルビークラスWPCategoryは必要ではないと思います。また、WordpressのERDを見てください。Termには、1つではなく多くのterm taxonomiesがあります。私はTermTaxonomyでnamed_scopeとポストのカテゴリ法によりアリGesherのWPCategoryを置き換え
class Term < ActiveRecord::Base
establish_connection Rails.configuration.database_configuration["wordpress_#{Rails.env}"]
set_table_name 'wp_terms'
set_primary_key 'term_id'
has_many :term_taxonomies
end
class TermTaxonomy < ActiveRecord::Base
establish_connection Rails.configuration.database_configuration["wordpress_#{Rails.env}"]
set_table_name 'wp_term_taxonomy'
set_primary_key 'term_taxonomy_id'
belongs_to :term
has_many :term_relationships
named_scope :categories, :conditions => {:taxonomy => 'category'}
end
class TermRelationship < ActiveRecord::Base
establish_connection Rails.configuration.database_configuration["wordpress_#{Rails.env}"]
set_table_name 'wp_term_relationships'
set_primary_key 'object_id'
belongs_to :post, :foreign_key => 'object_id'
belongs_to :term_taxonomy
has_one :term, :through => :term_taxonomy
end
class Post < ActiveRecord::Base
establish_connection Rails.configuration.database_configuration["wordpress_#{Rails.env}"]
set_table_name 'wp_posts'
set_primary_key 'ID'
has_many :term_relationships, :foreign_key => 'object_id'
has_many :term_taxonomies, :through => :term_relationships
default_scope :conditions => {:post_type => 'post', :post_status => 'publish'}
def categories
term_taxonomies.categories.map(&:term)
end
end
:だから、私のWordpressのモデルは、この(私はRailsの2.3を使用ノート)のように見えます。