在特定位置时,实例变量为nil



我试图在视图中使用控制器实例变量的值。该变量的值将根据会话变量的值而改变。我在测试它,我注意到,如果我在一个特定的位置设置变量,它总是出现为nil。

我使用设计进行身份验证,每次我在最后一个设计函数后设置变量时,它出现为nil。但是当我把它放在任何地方,它都显示得很好。我只是觉得很奇怪,想知道为什么会这样。除了我设置实例变量之外,其他一切都很好,它与设计身份验证完全分开。

@prop是我要设置的变量。如果我这样设置,当我试图引用视图中的值时它会显示为nil

def new
self.resource = resource_class.new(sign_in_params)      
clean_up_passwords(resource)        
yield resource if block_given?      
respond_with(resource, serialize_options(resource))
@prop = "test value"
end

但是当我像这样设置它或respond_with之前的任何其他行时,我在视图中得到正确的值。

def new
@prop = "test value"
self.resource = resource_class.new(sign_in_params)      
clean_up_passwords(resource)        
yield resource if block_given?      
respond_with(resource, serialize_options(resource))
end

谢谢

respond_with正在触发响应器并使视图呈现。当你在respond_with之后放置另一个变量时,视图将无法识别它。

相关内容

  • 没有找到相关文章

最新更新