在特定位置时的实例变量 nil
Instance variable nil when in certain location
我正在尝试在视图中使用控制器实例变量的值。变量的值将根据会话变量的值而改变。我正在测试它,我注意到如果我在特定位置设置变量,它总是出现为 nil。
我正在使用 Devise 进行身份验证,每次我在最后一个 Devise 函数之后设置变量时,它都会显示为 nil。但是当我把它放在其他任何地方时,它显示得很好。我只是觉得这很奇怪,想知道为什么会这样。除了我设置与 Devise 身份验证完全分开的实例变量外,其他一切都很好。
@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
之后放置另一个变量时,视图将无法识别它。
我正在尝试在视图中使用控制器实例变量的值。变量的值将根据会话变量的值而改变。我正在测试它,我注意到如果我在特定位置设置变量,它总是出现为 nil。
我正在使用 Devise 进行身份验证,每次我在最后一个 Devise 函数之后设置变量时,它都会显示为 nil。但是当我把它放在其他任何地方时,它显示得很好。我只是觉得这很奇怪,想知道为什么会这样。除了我设置与 Devise 身份验证完全分开的实例变量外,其他一切都很好。
@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
之后放置另一个变量时,视图将无法识别它。