Gugubaight Gugubaight - 2 months ago 8
Ruby Question

Rails 4 Error: ActiveRecord::RecordNotFound Couldn't find 'id'=

I'm fairly new to rails and into coding my first app. Just can't figure out how to target a user the current_user favorited (Three models: User, Tool, FavoriteUser).

Controller (Tools)

def index
@favorites = current_user.favorites.order("created_at DESC")
@userfavorites = current_user.userfavorites.order("created_at DESC")
@tools = Tool.where(user_id: current_user).order("created_at DESC")
@user = FavoriteUser.find(params[:c_user_id]).user_id
@cuser = current_user
end


Index View (Tools)

%h2 My Favorite Users
- @userfavorites.each do |user|
= image_tag gravatar_for @user if @user.use_gravatar == true
= image_tag @user.avatar_filename.url if @user.use_gravatar == false
%h2= link_to @user.username, @user
%p= link_to "Favorite", @userfavorite_user_path(user, type: "favorite"), method: :get
%p= link_to "Unfavorite", @userfavorite_user_path(user, type: "unfavorite"), method: :get


If I run this in my browser it appears following error:

ActiveRecord::RecordNotFound in ToolsController#index
Couldn't find FavoriteUser with 'id'=


EDIT:

FavoriteUser Database:

user_id:integer #favorited
c_user_id:integer #active user


I simply can't figure it out.


Thanks in advance for your help!

ADDED RELATIONSHIPS:

user.rb

has_many :favorite_users # just the 'relationships'
# Favorite users of user
has_many :favorite_relationships, class_name: "FavoriteUser", foreign_key: "c_user_id"
has_many :userfavorites, through: :favorite_relationships, source: :user

# Favorited by a user
has_many :favorited_relationships, class_name: "FavoriteUser", foreign_key: "user_id"
has_many :userfavorited_by, through: :favorited_relationships, source: :c_user


favorite_user.rb

class FavoriteUser < ActiveRecord::Base
belongs_to :c_user, class_name: "User"
belongs_to :user, class_name: "User"
end

Answer

That's the solution!

@userfavorites = current_user.userfavorites
Comments