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