Problème: Je veux avoir seulement 1 UserLesson par utilisateur et par vidéo parce que je suis la construction d'un système de suivi (système de progression) L'utilisateur doit être en mesure de voir combien cours sont RESTANT leçon/leçon totale et aussi lorsque marqué comme complété ajoutera cssValide enregistrement unique par utilisateur et par leçon // Rails 4
J'envoie les données de la vue sur le contrôleur:
<%= link_to 'Mark as completed', user_lessons_path(@user_lesson, user_lesson: {user_id: current_user.id, lesson_id: @lesson.id}), :method => :post, class: 'btn btn-primary-big' %>
le contrôleur reçoit des données et lancer la méthode de création
class UserLessonsController < ApplicationController
before_filter :set_user_and_lesson
def show
end
def create
@user_lesson = UserLesson.create(user_lesson_params)
if @user_lesson.save
flash[:success] = "You rock! Keep up ;)"
redirect_to(:back)
else
flash[:success] = "You have already completed this lesson"
redirect_to(:back)
end
end
private
def user_lesson_params
params.require(:user_lesson).permit(:user_id, :lesson_id, :completed)
end
end
Voici la relation modèle
class UserLesson < ActiveRecord::Base
belongs_to :user
belongs_to :lesson
# validates_uniqueness_of :user_lesson, :scope => [:user, :lesson]
end
class Lesson < ActiveRecord::Base
has_one :lecture, through: :chapter
belongs_to :chapter
end
class User < ActiveRecord::Base
has_many :enrollments
has_many :user_lessons
has_many :lectures, through: :enrollments
accepts_nested_attributes_for :enrollments
end
class Enrollment < ActiveRecord::Base
belongs_to :user
belongs_to :lecture
validates :lecture, uniqueness: { scope: :user, message: "should happen once per user" }
end
class Lecture < ActiveRecord::Base
belongs_to :category
has_many :lessons, through: :chapters, dependent: :destroy
has_many :chapters
belongs_to :teacher
# For course user relationship
has_many :enrollments
has_many :users, through: :enrollments
accepts_nested_attributes_for :enrollments
accepts_nested_attributes_for :chapters
end
class Chapter < ActiveRecord::Base
has_many :lessons
belongs_to :lecture
accepts_nested_attributes_for :lessons
end
Je suppose était de valider l'unicité de la leçon utilisateur par utilisateur et leçon. Cependant, ne peut pas sembler fonctionner a reçu le message d'erreur.
Quel est le message d'erreur? – usmanali
Undefined user_lesson dans le contrôleur – AdrienNhm
pouvez-vous coller la ligne entière? – usmanali