繁体   English   中英

Rails 4 +设计+路由错误

[英]Rails 4 + Devise + Routing Error

我正在尝试在创建/显示Rails 4应用程序的一个相当简单的事件上安装Devise。 我有2个静态页面,索引页面显示时未经过身份验证,并且一切都很好。 其他任何情况都可将您踢到“注册”页面。 从那里,当我尝试为自己创建一个帐户时(仅查看其他页面-简单的vanilla devise安装尝试)时,单击“提交”时,出现“没有路由与[POST] //注册/用户”错误(f 。提交)

我使用的是Rails 4,安装了Devise的3.0.3版本,将其捆绑,运行“ rails generate devise:install”进行安装,运行“ rails generate devise用户”,运行db:migrate,倾斜了路线,然后重新启动了Rails服务器。

我什至用“正确”的路线和“获取帖子”重新创建了按钮动作-没有骰子。

有人知道吗 我在这里茫然。

好吧,它总是欺骗调试服务器端代码,而实际上却没有看到它,但这就是应该起作用的方法。

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_放置在任何页面中的任何位置,并且可以使用。 原因是“ register_path”。

创建路由时, as: :register参数创建一个全局变量,可在整个应用程序中访问该变量。

即使更改路由文件, link_to方法中的register_path变量也将始终调用正确的操作。

这只是语法。 您可以创建所需的任何符号。 这也将起作用:

route.rb:

# Inside get method, third parameter
as: :bowtiesarecool

someview.html.erb:

# Inside link_to method, second parameter
bowtiesarecool_path

只需将变量名与符号名匹配,然后在其后放一个_path即可。 link_to方法将处理其他所有内容!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM