我无法正确地说出标题,但我希望你理解。我已按照关于如何generate a controller的确切示例。
rails generate devise:controllers users
我的路线:
devise_for :users, controllers: { sessions: "users/sessions" }
然后将(new.html.erb)从devise/sessions
复制到views/users/sessions
,然后从devise/sessions/
然后在:
class Users::SessionsController < Devise::SessionsController
def new
super
@foo = 'Bar'
end
end
现在在views/users/sessions/new.html.erb
:
<%= @foo %> # should show Bar
没有显示。我错过了什么吗?
答案 0 :(得分:3)
这就是你的SessionsController应该是这样的:
class Users::SessionsController < Devise::SessionsController
def new
@foo = 'bar'
super
end
end
请注意super
低于您的自定义代码。
当你致电super
时,它会调用父方法;在我们的案例中Devise::SessionsController#new
。在调用该方法并呈现@foo
之前,您需要初始化new.html.erb
。