为什么我无法使用att_reader:controller从帮助程序访问控制器

时间:2014-07-17 17:28:47

标签: ruby-on-rails ruby-on-rails-4 controller helper

我一直试图弄清楚为什么我无法从我的rails helper访问:controller变量。在帮助程序类中调用att_reader :controller会有什么特别之处吗?

这是一个rails 4应用程序,这是我的代码:

class TicketFormTag < Liquid::Block

    include ActionView::Helpers::FormTagHelper
    include ActionView::Context

    #include ActionView::Helpers::FormHelper

    attr_reader :controller

    def initialize(tag_name, markup, tokens)
        super

    end

    def render(context)

        @controller = context.registers[:controller]

        super(context).html_safe
        form_tag('#') do

        end
    end

    delegate :form_authenticity_token, :request_forgery_protection_token, :protect_against_forgery?, to: :controller
end

1 个答案:

答案 0 :(得分:0)

我刚刚阅读了关于ruby中的模块,类和对象的指南:

我想:def initialize 必须有@controller =“你想用attr_reader访问什么:控制器。手段

def initialize(tag_name, markup, tokens)
    super
    @controller = something
end