我一直试图弄清楚为什么我无法从我的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
答案 0 :(得分:0)
我刚刚阅读了关于ruby中的模块,类和对象的指南:
我想:def initialize
必须有@controller =“你想用attr_reader访问什么:控制器。手段
def initialize(tag_name, markup, tokens)
super
@controller = something
end