【问题标题】:devise multiple models application helper设计多个模型应用程序助手
【发布时间】:2017-11-15 12:19:50
【问题描述】:

我的设计有问题:

在我的 ApplicationHelper 中我已经有了

def resource_name
    :user
  end

  def resource
    @resource ||= User.new
  end

  def devise_mapping
    @devise_mapping ||= Devise.mappings[:user]
  end

它有效。

我只是添加了一个“工人”模型。如何在我的 Applicationhelper 中为用户或工作人员设置 3 def。我不想设置其他 3 个 def 并重命名我所有的设计“工人”视图。

非常感谢!

【问题讨论】:

  • 你找到解决办法了吗?

标签: ruby-on-rails devise helper


【解决方案1】:

我能够通过使用帮助器检查父类来解决我的问题:

module ApplicationHelper
  def resource_name

    if self.class.parent == Workers
      :worker
    else 
      :user
    end 
  end

  def resource
    if self.class.parent == Workers
        @resource ||= Worker.new
    else 
        @resource ||= User.new
    end 
  end

  def devise_mapping
    if self.class.parent == Workers
      @devise_mapping ||= Devise.mappings[:worker]
    else 
      @devise_mapping ||= Devise.mappings[:user]
    end 
  end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-16
    • 2011-05-27
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多