Rails 单元格 4:访问 Devise 助手

Rails Cells 4: access Devise helpers

我有一个简单的 Cells 示例,我想将其与 Devise 和 Rails 集成。但是,所有示例和问题似乎都是针对 Cells 3 的。以下在我的应用程序中失败(添加了行号)。

line 1: class UserCell < Cell::ViewModel
line 2:   include Devise::Controllers::Helpers
line 3:
line 4:   def index
line 5:     render
line 6:   end
line 7: end

为第 2 行引发此错误。

undefined method `helper_method' for UserCell:Class

事实证明,默认情况下,Cells 不再配置为与 Rails 以相同的方式工作(通过 Cell::Rails)。我不得不添加抽象控制器助手,但这让我自动获得了单元格中的所有设计助手。

class UserCell < Cell::ViewModel
   include AbstractController::Helpers
   include Devise::Controllers::Helpers

   def index
     render
   end
 end

另一种方法是

def_delegator :current_user, :controller

你可以将一切委托给控制器

还有一种方法,特别是如果您想让您的单元格和控制器彼此独立,您可以在选项{}哈希中将对象和属性传递给您的单元格。