在Rails 4的装饰器中使用Devise帮助器方法

宋祖

我的Rails 4项目中有一个装饰器:app/decorators/course_decorator.rb

在内部course_decorator.rb,我想定义一个在满足条件时将显示链接的方法。例如,我在做:

class CourseDecorator

def initialize(course)
  @course = course
end

def view_button
  if user_signed_in?
    link_to "View", @course
  end
end

我正在使用Devise gem进行用户身份验证,并且user_signed_in?是Devise提供的帮助程序。

尝试view_button在我的视图中使用该方法时,没有任何方法错误。错误是因为undefined method 'user_signed_in?' for #Course:0x007fcc7ccb8310

我认为这是由于装饰器正在user_signed_in?对Course对象调用方法而发生的user_signed_in?在这种情况下,如何正确实施方法?

佩里·霍里奇(Perry Horwich)

从Devise Wiki此处

Devise包括一些功能规格的测试助手。为了使用它们,您需要在功能测试中包括Devise,方法是在代码底部添加以下内容

test/test_helper.rb file:

class ActionController::TestCase  
  include Devise::TestHelpers  
end  

如果您使用的是RSpec,则可以将以下内容放入名为spec / support的文件中

/devise.rb or in your spec/spec_helper.rb:  

RSpec.configure do |config|  
  config.include Devise::TestHelpers, type: :controller  
end  

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在rails4中使用装饰器?

来自分类Dev

Ruby On Rails在link_to中使用帮助器方法

来自分类Dev

使用Devise和Rails的复选框帮助器方法进行布尔属性更新

来自分类Dev

Rails 4在初始化器中使用应用程序帮助程序

来自分类Dev

在Rails form_for帮助器字段中使用ParsleyJS

来自分类Dev

在Rails form_for帮助器字段中使用ParsleyJS

来自分类Dev

Ruby on Rails-在html.erb中使用帮助器

来自分类Dev

使用Devise的Rails 4,使用Rspec测试控制器

来自分类Dev

Rails 4自定义帮助器方法

来自分类Dev

rails 4将文本转换为数组帮助器方法

来自分类Dev

Ruby on Rails帮助器

来自分类Dev

我如何在Rails 4 devise sign_in页面中使用控制器中的对象查看数据

来自分类Dev

在Rails中使用Devise时是否需要“用户”控制器

来自分类Dev

如何在Rails 4中使用按钮调用控制器方法

来自分类Dev

覆盖Rails翻译帮助器

来自分类Dev

Rails渲染部分帮助器

来自分类Dev

生成Devise控制器-Rails Devise

来自分类Dev

Rails 4-devise_for不使用自定义控制器

来自分类Dev

如何添加has_many和devise_for之类的全局Rails帮助器?

来自分类Dev

Rails在控制器中使用哈希

来自分类Dev

Rails 4:如果未指定HTTP方法,则不应在路由器中使用`match`方法

来自分类Dev

twitter-bootstrap-rails nav_bar帮助器方法

来自分类Dev

没有方法错误//帮助器// Rails 3

来自分类Dev

Rails image_path / url帮助器方法

来自分类Dev

将YAML与ERB和Rails路径帮助器混合使用

来自分类Dev

在Rails应用中使用非浏览器请求命中Devise身份验证背后的Web端点

来自分类Dev

Ruby On Rails中使用Rails服务器vs预览方法-mad_chatter

来自分类Dev

devise_invitable-在DeviseInvitable控制器的应用程序布局中找不到Rails URL帮助器

来自分类Dev

Rails 4 + Rspec + Devise:控制器规格中用于sign_in用户的未定义方法'env'

Related 相关文章

  1. 1

    如何在rails4中使用装饰器?

  2. 2

    Ruby On Rails在link_to中使用帮助器方法

  3. 3

    使用Devise和Rails的复选框帮助器方法进行布尔属性更新

  4. 4

    Rails 4在初始化器中使用应用程序帮助程序

  5. 5

    在Rails form_for帮助器字段中使用ParsleyJS

  6. 6

    在Rails form_for帮助器字段中使用ParsleyJS

  7. 7

    Ruby on Rails-在html.erb中使用帮助器

  8. 8

    使用Devise的Rails 4,使用Rspec测试控制器

  9. 9

    Rails 4自定义帮助器方法

  10. 10

    rails 4将文本转换为数组帮助器方法

  11. 11

    Ruby on Rails帮助器

  12. 12

    我如何在Rails 4 devise sign_in页面中使用控制器中的对象查看数据

  13. 13

    在Rails中使用Devise时是否需要“用户”控制器

  14. 14

    如何在Rails 4中使用按钮调用控制器方法

  15. 15

    覆盖Rails翻译帮助器

  16. 16

    Rails渲染部分帮助器

  17. 17

    生成Devise控制器-Rails Devise

  18. 18

    Rails 4-devise_for不使用自定义控制器

  19. 19

    如何添加has_many和devise_for之类的全局Rails帮助器?

  20. 20

    Rails在控制器中使用哈希

  21. 21

    Rails 4:如果未指定HTTP方法,则不应在路由器中使用`match`方法

  22. 22

    twitter-bootstrap-rails nav_bar帮助器方法

  23. 23

    没有方法错误//帮助器// Rails 3

  24. 24

    Rails image_path / url帮助器方法

  25. 25

    将YAML与ERB和Rails路径帮助器混合使用

  26. 26

    在Rails应用中使用非浏览器请求命中Devise身份验证背后的Web端点

  27. 27

    Ruby On Rails中使用Rails服务器vs预览方法-mad_chatter

  28. 28

    devise_invitable-在DeviseInvitable控制器的应用程序布局中找不到Rails URL帮助器

  29. 29

    Rails 4 + Rspec + Devise:控制器规格中用于sign_in用户的未定义方法'env'

热门标签

归档