如果我出错了,请告诉我我可以改变它。我在config / initializers / payload_signer.rb中有一个文件。我试图在名为device_enrollment_controller.rb的控制器中使用此文件。
PayloadSigner.sign(get_profile)
get_profile是控制器中的一个方法,它获取我需要的文件并返回它。 PayloadSigner引用其他文件。当我尝试运行它时(请记住,我确定必须在payload_signer中进行更改才能正常工作)我得到的错误是未初始化的常量DeviceEnrollmentController :: PayloadSigner。这让我相信我错误地引用了payload_signer.rb文件。我尝试过像include和load这样的东西,但到目前为止它们还没有用。
感谢任何帮助或指导。
答案 0 :(得分:1)
before_filter
中。可以在ApplicationController
中,也可以只在那些需要它的控制器中(例如 DeviceEnrollmentController )。像这样:
class DeviceEnrollmentController # Or ApplicationController
before_filter :sign_payload
protected
def get_profile
# Magic
end
def sign_payload
PayloadSigner.sign(get_profile)
end
end
编辑:另一个例子:
class DeviceEnrollmentController
# The filter is only applied to the sign action
# (that's what the :only parameter does).
before_filter :sign_payload, :only => [:sign]
# Browsing to /show, you render this magic button of yours.
def show
# Render page that holds the button
end
# The magic button is bound to the /sign route.
# Clicking on the button calls this action.
def sign
# When you get here, the #sign_payload method
# has already been called.
end
protected
def get_profile
# Magic
end
def sign_payload
PayloadSigner.sign(get_profile)
end
end