2012-08-08 130 views
0

我有兩個模型,主題頁面。我在它們之間創建了一個一對多的關聯。Ruby on Rails模型/控制器訪問

class Subject < ActiveRecord::Base 
    has_many :pages 
    attr_accessible :name 
    attr_accessible :position 
    attr_accessible :visible 
    attr_accessible :created_at 
end 

class Page < ActiveRecord::Base 
    belongs_to :subject 

    attr_accessible :subject_id 
    attr_accessible :name 
    attr_accessible :permalink 
    attr_accessible :position 
    attr_accessible :visible 
    attr_accessible :created_at 
end 

正如上面提到的,我有兩個型號,我想訪問所有對象名稱這是在主題模式向頁面模式/控制器...

+1

不是答案,但可以聲明multipl e屬性在一個'attr_accessible'調用中幹掉你的代碼。 – x1a4 2012-08-08 07:12:52

+0

只是預感,但你可能想看看acts_as_api gem – 2012-08-08 08:15:02

回答

0

如果你想保存在一個物體模型使用的所有主題:

Subject.pluck(:name) 

或訪問與特定頁面相關聯的主題:

page = Page.first 
page.subject #subject object associated with the page 
0

以下是您如何訪問主題頁面或頁面主題的方法。

s = Subject.create(<params>) 
s.pages # array of page objects 

p = Page.create(<params>) 
p.subject # subject object 
+0

你不是指'.where()'而不是'.create()'? – Mischa 2012-08-08 08:22:37

1

這給一試:

Subject.select("subjects.name").joins(:pages).uniq 
相關問題