2012-03-15 26 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