好吧,它总是欺骗调试服务器端代码而没有看到它在运行,但这是应该工作的。
yourappname/config/routes.rb :
devise_scope :user do
# matches the url '/register' to the registration controller's 'new' action and creates a :register symbol inorder to reference the link dynamically in the rest of the code
get 'register', to: 'devise/registrations#new', as: :register
end
(假设您的注册按钮在您的应用程序的部分)
yourappname/app/views/layouts/application.html.erb:
<%= link_to "Register", register_path, class: "btn" %>
现在,您实际上可以将该 link_to 放在任何位置、任何页面中,并且它会起作用。原因是“register_path”。
创建路由时,该as: :register
参数会创建一个可以在整个应用程序中访问的全局变量。
即使您更改了路由文件,您方法中的register_path
变量也将始终调用正确的操作。link_to
这只是语法。你可以创建任何你想要的符号。这也可以:
路线.rb:
# Inside get method, third parameter
as: :bowtiesarecool
someview.html.erb:
# Inside link_to method, second parameter
bowtiesarecool_path
只需将变量名称与符号名称匹配并在其后放置一个 _path 即可。link_to 方法将处理所有其他事情!