2015-12-14 46 views
0

我正在开发一个测试应用程序,其中赞成某事的人成为该用户的订阅者。影响控制器的模型中未初始化的常量

控制器:

def favorite_subscribe 
    @favorite_subscription = FavoriteSubscription.add_favorite_subscription(current_user, @user) 
    @user.favorite_subscriber_total = @user.favorite_subscriber_total + 1 
    @user.save 
    redirect_to :back, :notice => "Congratulations, you have favorited #{@user.username}." 
    end 

型号:

def self.add_favorite_subscription(user, favorite_subscribe) 
    user.favorite_subscriptions.where(:subscribe_id => subscribe.id).first_or_create 
end 

    # Remove the favorite of the user with the other user 
    def self.remove_favorite_subscription(user, favorite_subscribe) 
    user.favorite_subscriptions.where(:subscribe_id => subscribe.id).destroy_all 
    end 

    # Get the user with the subscription 
    def favorite_subscribe 
    User.find(subscribe_id) 
    end 

我得到一个错误,它不能自动加载不变,并预计我的模型来定义它。如果任何人都可以提供帮助,那将会非常感激。

错误是在这里,比较遗憾的是:

Unable to autoload constant FavoriteSubscription, expected /home/jakxna360/rails/test/app/models/favorite_subscription.rb to define it 
+0

定义,其中是误差? –

+1

发布错误日志。 – RAJ

+0

并尝试包含模型和控制器定义。 –

回答

0

这通常意味着Rails是无法在其中找到一些类定义的文件。 Rails对其约定非常严格。

在发布代码,我会建议仔细检查的范围:

  1. class FavoriteSubscription被定义在一个文件中app/models/favorite_subscription.rb和数据库表favorite_subscriptions存在。
  2. FavoriteSubscriptionsControllerapp/controllers/favorite_subscriptions_controller.rb
+0

你好,谢谢你的帮助。类Favoritesubscription在模型中定义。并且用户也被定义。如果它有助于订阅属于用户 – Jakxna360

+0

大写字母,小写字母和下划线非常重要:您的课程是名为'Favoritesubscription'还是'FavoriteSubscription'。文件名是“favoritesubscription.rb”还是“favorite_subscription.rb”? – spickermann

+0

控制器的文件名是favoritesubscription.rb。该模型的文件名是favorite_subscription.rb。我还发现活动记录中的类叫做Favoritesubscription,在控制器中它是FavoriteSubscriptionsController。 – Jakxna360

相关问题