0
目前正在构建一个教育应用程序,我有一个管理模型和一个用户模型。您如何使用Devise帮助器方法,以便某些控制器操作仅限于某个用户?
我只想让管理员访问导致创建,编辑和删除请求的链接。
我目前使用的是<% if user_signed_in? %>
,只允许登录用户访问链接,但自从我添加了管理员角色后,我只希望管理员能够访问链接。
我没有做任何事情给我的管理员或用户控制器,只是产生了必要的模型和控制器。
ActiveRecord::Schema.define(version: 20170714091732) do
create_table "admins", force: :cascade do |t|
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["email"], name: "index_admins_on_email", unique: true
t.index ["reset_password_token"], name: "index_admins_on_reset_password_token", unique: true
end
create_table "courses", force: :cascade do |t|
t.string "title"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "lessons", force: :cascade do |t|
t.string "title"
t.text "content"
t.integer "course_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "users", force: :cascade do |t|
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["email"], name: "index_users_on_email", unique: true
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
end
end
你有一些用户表中的角色作为管理员? – Pavan
不,我不知道。我选择了创建两个用户模型的路径,一个是管理员,另一个是用户,所以我没有任何指示任何用户角色的数据库表列。 – yamaoka
这些模型之间有任何关联吗? – Pavan