[英]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
操作现在将您重定向到登录路径,以防止其他用户注册以获得对您管理员的访问权限。
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个部分,您应该了解:
new_signup
命名为route,在控制器,视图等中使用,您不能在浏览器中使用它,它肯定会抛出404
/refinery/users/register(.:format)
这是您应该在浏览器中键入的内容
refinery/users#new
new-这是路由的控制器和操作,其中精炼厂-控制器和用户的名称空间-控制器和#new-操作
答案-您需要进入/ refinery / users / register才能查看注册表格
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.