加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby On Rails – 在控制器中使用关注点

发布时间:2020-12-17 01:42:28 所属栏目:百科 来源:网络整理
导读:可能的Noob警告:RoR的新功能 我试图在RoR中使用关注点.现在我只是写了一个非常简单的问题 #./app/controllers/concerns/foo.rbmodule Foo extend ActiveSupport::Concern def somethingfoo puts "Ayyyy! Foo" endend 当我尝试在我的控制器中使用此问题时,我
可能的Noob警告:RoR的新功能

我试图在RoR中使用关注点.现在我只是写了一个非常简单的问题

#./app/controllers/concerns/foo.rb
module Foo
  extend ActiveSupport::Concern

  def somethingfoo
    puts "Ayyyy! Foo"
  end
end

当我尝试在我的控制器中使用此问题时,我得到一个未定义的方法错误

#./app/controllers/foo_controller.rb
class FooController < ApplicationController

  include Foo

  def show
    Foo.somethingfoo # undefined method 'somethingfoo' for Foo:Module
    render plain: "Ohh no,It doesnt even show me because of the error above me"
  end
end

据我所知,应该调用somethingfoo,但事实并非如此.我也尝试在一个包含的do … end块中定义somethingfoo,但这也不起作用.

有什么我想念的吗?控制器可以不用这样的问题吗?

解决方法

如果包含模块(由ActiveSupport :: Concern扩展或不扩展),则该模块的方法将成为包含类/模块的实例方法.

因此,您的Controller方法应该读取

def show
  somethingfoo
  render plain: "Yeah,I'm shown!"
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读