标签: ruby-on-rails ruby web
当您在rails中创建网站时,它会自动创建一些页面,允许您向网站添加内容。您通常可以通过在浏览器中键入domain.com/something/new来访问它们。
假设您要将网站上传到互联网。如何阻止用户访问该页面?删除它们似乎不是一个好方法,因为那么如何为网站添加内容?你用密码保护他们吗?还有更好的方法吗?
答案 0 :(得分:2)
您可以使用devise对用户进行身份验证,并在控制器中调用authenticate_user,以确保只有经过身份验证的用户才能转到该页面。您还可以查看cancan,它可以为您提供更多控制权,例如设置读取权限,写入权限。
答案 1 :(得分:0)
可能有一百种方法可以做到这一点。这取决于你需要什么和你想要什么。 如果您不希望别人在您的网站上发布内容并且您不需要自己发布内容,那么为什么不从/yourmodel/new,/app/controllers/yourmodel_controller.rb删除到/app/views/yourmodel/new.html.erb的路由和来自/config/routes.rb的条目?
/yourmodel/new
/app/controllers/yourmodel_controller.rb
/app/views/yourmodel/new.html.erb
/config/routes.rb
此外,您可以使用某些gem进行身份验证。有几个。看看clearance。它会让您只为注册用户提供一些页面。如果你想隐藏几页 - 比方说 - 普通用户只有管理员才能访问它们,请查看aegis。