在我的项目我有一个用户模式和广告模式。用户模型也包含管理员。我想设置路由,以便管理员登录时,所有URL都包含“/ admin”。我是新来的铁轨,并有相同的麻烦。例如,当普通用户登录时,url为/ advertisements /:id/show,但是当管理员登录时,URL将变为/ admin/advertisements /:id/show。尝试了很多方法,但找不到解决方案。 我的用户迁移文件如下:轨添加/管理员路由时,管理员日志中
class CreateUsers < ActiveRecord::Migration[5.1]
def change create_table :users do |t| t.string :first_name, limit: 15, null: false t.string :last_name, limit: 15 t.string :username, limit: 20 t.string :email, null: false t.string :password_digest t.boolean :approved, default: false t.boolean :admin, default: false t.timestamps end end end
我的广告迁移文件是:
class CreateAdvertisements < ActiveRecord::Migration[5.1]
def change
create_table :advertisements do |t|
t.string :name, null: false
t.text :description, null: false
t.integer :price, null: false
t.string :location, null: false
t.integer :user_id
t.boolean :approved, default: false
t.timestamps
end
add_index("advertisements", "user_id")
end
end
的路由文件(routes.rb中)具有代码
resources: users
resources: advertisements
有没有办法做到这一点?
你想不同的途径导致单独的控制器或你想同一个控制器能与不同的路线访问? – AntonTkachov
我希望可以通过单独的路线访问相同的控制器,例如广告可能不得不由管理员或发布它的用户删除。 –
一方面是......但另一方面用户应该只能访问他自己的帖子,而管理员 - 所有帖子。我通常使用两种变体:1.设置单独的管理面板命名空间或2.使用相同的路由,但只隐藏没有管理员用户的管理员逻辑。你有什么理由拥有2个管理员的2条路线?管理员/非管理员角色可以在一条路线上轻松处理 – AntonTkachov