繁体   English   中英

Ruby On Rails和RefineryCMS中的路由

[英]Routes in Ruby On Rails and RefineryCMS

我通常使用Java或Clojure,但我并没有做很多Ruby编程,因此,感谢您的耐心配合。 我刚刚创建了一个新站点,其中包含Ruby 2.1.5,Rails 4.1.8和最新版本的RefineryCMS。

如果我做:

捆绑执行耙路径

然后我看到:

new_signup GET    /refinery/users/register(.:format) refinery/users#new

signup POST   /refinery/users/register(.:format) refinery/users#create

但是如果我将浏览器指向:

0.0.0.0:3000/new_signup

要么:

0.0.0.0:3000/精炼厂/新注册

我得到404。

我应该将浏览器指向这些路线?

如果我将浏览器直接指向:

http://0.0.0.0:3000/refinery/users/register

我被重定向到:

http://0.0.0.0:3000/refinery/login

我可以猜测一些地方可能需要更改设置以解决此问题,但是如果您可以提出一个建议的地方,我将不胜感激。

当您键入bundle exec rake routes ,输出格式为:

route_name  HTTP_VERB  path/to/access/this/route   controller#action

当您查看:

new_signup GET    /refinery/users/register(.:format) refinery/users#new
signup     POST   /refinery/users/register(.:format) refinery/users#create

...这向您展示了两条路由,一条名为“ new_signup”,另一条名为“ signup”,均可通过/refinery/users/register.html访问(其中.html是格式,并且是可选的,因为它在括号中) )。 如果是GET请求,它将路由到refinery/users控制器中的new操作,如果是POST请求,则将其路由到create操作。

鉴于@ manfergo25所说的话,我想因为您的数据库中已经有一个用户,所以new_signup操作现在将您重定向到登录路径,以防止其他用户注册以获得对您管理员的访问权限。

资料来源: http//guides.rubyonrails.org/routing.html

RefineryCMS管理此内部事务。 当重定向到/ refinery / login时是因为您已经创建了superuser(admin)。

如果您想重新注册并且不记得用户名和密码,请执行以下操作:

bundle exec rake db:drop
bundle exec rake db:migrate
go to --> http://0.0.0.0:3000/refinery and register

注册后,它将给您一个错误(RefineryCMS错误),但是再次转到-> http://0.0.0.0:3000/refinery ,并使用新的用户名和密码登录

new_signup GET    /refinery/users/register(.:format) refinery/users#new

signup POST   /refinery/users/register(.:format) refinery/users#create

有3个部分,您应该了解:

  1. new_signup命名为route,在控制器,视图等中使用,您不能在浏览器中使用它,它肯定会抛出404

  2. /refinery/users/register(.:format)这是您应该在浏览器中键入的内容

  3. refinery/users#new new-这是路由的控制器和操作,其中精炼厂-控制器和用户的名称空间-控制器和#new-操作

答案-您需要进入/ refinery / users / register才能查看注册表格

暂无
暂无

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

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