2012-03-15 32 views
2

我有一些rails應用程序。例如,我有下一個型號:User,PostUser型號生成DevisePost模型具有列textuser_id。關係:用戶has_many :posts和郵政belongs_to :user。我需要確定誰是帖子的所有者。例如,所有者可以編輯他的帖子。 如果我理解正確,我需要創建一些助手。我是新手,不明白是誰做的。有人能幫我嗎?創建新的幫手

回答

3

術語「助手」可能會令人困惑。如果您使用導軌生成器,則會在名稱爲<model>s_helper.rbapp/helpers目錄中獲得一個文件。在這裏,您可以定義可在視圖模板中直接訪問的方法。例如,您可以定義一個名爲pronoun基於存儲在用戶模式的gender字段中的值的方法,如

def pronoun(user) 
    case user.gender 
    when "M" 
     "his" 
    when "F" 
     "her" 
    else 
     "their" 
    end 
end 

所以在視圖中引用了一些用戶,你可以做

​​

當然,你可以在模型中做同樣的事情,通常這是編寫助手的好地方。例如,邏輯定義用戶身份可能是

def status_name 
    if created_at > 30.days.ago 
    "old timer" 
    else 
    "noob" 
end 

然後,無論你可以引用用戶模型的實例,就可以調用@user.status_name

一般情況下,模型的方法是少談介紹,更多的是邏輯。

+0

我明白了。謝謝你的回答。 – Eugene 2012-03-15 09:30:38