Ruby on rails 无法修改关联';用户#跟踪和#x27;因为它经历了不止一个关联

Ruby on rails 无法修改关联';用户#跟踪和#x27;因为它经历了不止一个关联,ruby-on-rails,ruby,activerecord,associations,Ruby On Rails,Ruby,Activerecord,Associations,我创建了一个播放列表关联,这样用户可以根据自己的选择将曲目添加到播放列表中。这是可行的,问题是,用户现在无法通过所属\u to:user 我的关联中有一些东西破坏了关系,我不知道这是什么,下面是我的模型中的所有相关代码: class User < ActiveRecord::Base require 'soundcloud' acts_as_voter belongs_to :gallery has_many :tracks has_many :active_relationship

我创建了一个播放列表关联,这样用户可以根据自己的选择将曲目添加到播放列表中。这是可行的,问题是,用户现在无法通过
所属\u to:user

我的关联中有一些东西破坏了关系,我不知道这是什么,下面是我的模型中的所有相关代码:

class User < ActiveRecord::Base
require 'soundcloud'
acts_as_voter
belongs_to :gallery
has_many :tracks



has_many :active_relationships, class_name:  "Relationship",
                              foreign_key: "follower_id",
                              dependent:   :destroy

has_many :passive_relationships, class_name:  "Relationship",
                               foreign_key: "followed_id",
                               dependent:   :destroy                                

has_many :following, through: :active_relationships, source: :followed
has_many :followers, through: :passive_relationships, source: :follower

has_many :playlists
has_many :tracks, through: :playlists
end
class用户
--

class Playlist
--

class playlitrack
--

classtrack2,:too\u short=>“请输入至少%d个字符”
验证以下内容的长度:description,:minimum=>10,:too\u short=>“请输入至少%d个字符”
def self.search(查询)
#其中(:title,query)->这将返回与查询完全匹配的结果
其中(“title | | description like?”,“%#{query}%”)
结束
结束
请让我知道我是否应该澄清有关这个问题的任何事情,谢谢

编辑:

错误:无法修改关联“用户跟踪”,因为它通过多个其他关联

错误指向tracks_controller.rb中的创建操作

class TracksController < ApplicationController
skip_before_filter  :verify_authenticity_token
def show
    @track = Track.find_by(id: params[:id])
end

def new
    @user = User.find(params[:user_id])
    @track = Track.new
end

def create
    @user = current_user
    @track = @user.tracks.create(track_params)

    if @track.save
        redirect_to user_path(current_user)
    else
        redirect_to :back
        flash[:alert] = 'There was an error processing your request'
    end
end

def upvote 
  @track = Track.find_by(id: params[:id])
  @track.upvote_by current_user

  render json: @track
end  

def unvote
  @track = Track.find_by(id: params[:id])
  @track.unliked_by current_user

  render json: @track
end

 def likes
    @user = User.find_by(id: params[:id])
    @likes = @user.find_voted_items

    render json: @likes
 end



 private

 def track_params
   params.require(:track).permit(:track, :user_id, :title, :description, :artist)
 end

 end
类跟踪控制器

更新:当我删除用户模型中的like 7时,它不会给我一个错误,但该轨迹不会保存…

哪个代码不起作用?错误是什么?当我试图创建一个轨迹时,它抛出了一个错误,上面的代码不工作?错误是什么?当我尝试创建轨迹时,它会抛出上面的错误
class PlaylistTrack < ActiveRecord::Base
belongs_to :playlist
belongs_to :track
end
class Track < ActiveRecord::Base
acts_as_votable
belongs_to :user

has_many :playlist_tracks

has_many :playlists, through: :playlist_tracks

mount_uploader :track, TrackUploader

validates :title, presence: true
validates :description, presence: true
validates :track, presence: true
validates_length_of :title, :minimum => 2, :too_short => "please enter at least %d character"
validates_length_of :description, :minimum => 10, :too_short => "please enter at least %d characters"


def self.search(query)
# where(:title, query) -> This would return an exact match of the query
where("title || description like ?", "%#{query}%")
end
end
class TracksController < ApplicationController
skip_before_filter  :verify_authenticity_token
def show
    @track = Track.find_by(id: params[:id])
end

def new
    @user = User.find(params[:user_id])
    @track = Track.new
end

def create
    @user = current_user
    @track = @user.tracks.create(track_params)

    if @track.save
        redirect_to user_path(current_user)
    else
        redirect_to :back
        flash[:alert] = 'There was an error processing your request'
    end
end

def upvote 
  @track = Track.find_by(id: params[:id])
  @track.upvote_by current_user

  render json: @track
end  

def unvote
  @track = Track.find_by(id: params[:id])
  @track.unliked_by current_user

  render json: @track
end

 def likes
    @user = User.find_by(id: params[:id])
    @likes = @user.find_voted_items

    render json: @likes
 end



 private

 def track_params
   params.require(:track).permit(:track, :user_id, :title, :description, :artist)
 end

 end