我已经通过以下方式声明了 user_decorator.rb 而不是 user_helper.rb
class UserDecorator < Draper::Decorator
delegate_all
def contract_type
contract_types.keys.collect {|k| [k.humanize, k]}
end
def employee_type
employee_types.keys.collect {|k| [k.humanize, k]}
end
def department_role
department_roles.keys.collect {|k| [k.humanize, k]}
end
end
这是我在 user.rb 上声明的枚举
enum contract_type: [:probationary, :apprenticeship, :six_months_to_one_year,
:three_years]
enum department_role: [:ceo, :cto, :coo, :manager, :tl, :gl, :developer]
enum employee_type: [:full_time, :part_time, :internship]
我想从与注册控制器相关的视图中调用辅助方法。它就像
class RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
super
end
end
但是,如果我调用辅助方法,例如从 views/devise/registrations/new.html.erb
<%= f.select :contract_type, contract_type, {prompt: t(".contract_type",
default: "Select contract type")} %>
它没有找到contract_type。需要有关如何从 user_decorator.rb 上声明的视图访问辅助方法的帮助