我在这里发现了很多类似的问题,但没有一个答案能解决我的问题。
在 /user/2 加载我的页面时出现以下错误
NoMethodError in User_data#data
Showing /Users/Jimmy/Documents/Launchpad Toys/LPT_Repositories/orbit-analytics/app/views/user_data/data.erb where line #108 raised:
undefined method `<' for nil:NilClass
Extracted source (around line #108):
105: </div>
106: </div>
107:
108: <% if @videos_number < 1 %><p style="font-size: 18px; margin-top: 25px;">This user has no approved videos.</p>
109:
110: <% else %>
111:
此错误是由控制器为我在视图中调用的任何和所有实例变量返回空值引起的。
这是相关控制器的开头:
class UserDataController < ApplicationController
require 'analytics_helper'
include AnalyticsHelper
def data
require "date"
@user_id = params[:user_id]
该错误似乎是由于控制器未能找到位于 lib/analytics_helper.rb 的模块 AnalyticsHelper 引起的。这是模块的开头:
Module AnalyticsHelper
# Average analytics calculations for a given set of videos
def analytics_tracker(video_ids)
total_likes, total_views, total_flags, total_days_visible = 0, 0, 0, 0
total_characters, total_unique_characters, total_recurring_characters, total_custom_characters, total_custom_backgrounds = 0, 0, 0, 0, 0
total_energy_level, total_emotions, total_scenes, total_duration = 0, 0, 0, 0
我取消了 application.rb 中自动加载 Rails 3 /lib 目录中文件的行的注释:
config.autoload_paths += %W(#{config.root}/lib)
我知道这个问题是由模块无法加载引起的,但我找到的解决方案都没有帮助我解决我的问题。任何帮助表示赞赏。谢谢。