设计如何在视图中访问resource / resource_name

时间:2010-12-30 15:55:11

标签: ruby-on-rails ruby devise

我在rails应用程序中使用设计,我有两种不同的资源类型,如用户和公司。

我想在视图中重用一些代码,所以尽管写作

if user_logged_in?
   current_user.name 
else  
   current_company.name

我想按照设计的方式做到这一点:

resource.name

这可能吗?

1 个答案:

答案 0 :(得分:1)

我不确定“你的设计方式”究竟是什么意思,但你可以像apnea.diving.deep那样建立一个应用程序助手。只需将其放在app/helpers/application_helper.rb中(您可能希望将其放在不同的文件中):

module ApplicationHelper
  def resource_name
    if user_logged_in?
      current_user.name
    else
      current_company.name
    end
  end
end

您现在可以在视图中使用resource_name

(另外,仅供参考,您编写的短代码片段(if user_logged_in?...将失败,因为“如果”需要以“结束”结束)