Ich baue gerade eine Bildungs-App und ich habe ein Admin-Modell und ein Benutzermodell.Wie verwenden Sie Devise-Hilfsmethoden, sodass bestimmte Controller-Aktionen auf einen bestimmten Benutzer beschränkt sind?
Ich möchte nur einen Administrator Zugriff auf Links haben, die zum Erstellen, Bearbeiten und Löschen von Anfragen führen.
Ich verwende derzeit eine <% if user_signed_in? %>
, damit nur angemeldete Benutzer auf den Link zugreifen können. Da ich jedoch eine Administratorrolle hinzugefügt habe, möchte ich nur, dass der Administrator auf die Links zugreifen kann.
Ich habe nichts anderes zu meinem Admin oder User Controller gemacht, nur die notwendigen Modelle und Controller generiert.
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
Haben Sie einige haben Rolle in der Benutzertabelle als Admin? – Pavan
Nein, tue ich nicht. Ich habe den Pfad zum Erstellen von zwei Benutzermodellen gewählt, von denen eines ein Administrator und das andere ein Benutzer ist. Daher habe ich keine Spalten in der Datenbanktabelle, die auf Benutzerrollen hinweisen. – yamaoka
Haben Sie irgendwelche Assoziationen zwischen diesen Modellen? – Pavan