我在这里发现了很多类似的问题,但没有一个答案解决了我的问题。访问/ lib目录中的Rails模块的问题
我在AT /用户加载我的网页收到以下错误/ 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]
的错误似乎是由控制器未能找到该模块AnalyticsHelper,这是位于LIB/analytics_helper.rb引起的。这里是模块的开头:
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中的/ lib目录下的文件3行:
config.autoload_paths += %W(#{config.root}/lib)
我知道这个问题是由引起该模块无法加载,但我发现的解决方案都没有帮助我解决问题。任何帮助表示赞赏。谢谢。
我很困惑;什么是“@ videos_number”?这些方法范围的变量是什么,它们是如何相关的? – 2012-07-24 22:06:47
'@ videos_number'在控制器中稍后定义为ActiveRecord对象的长度,因此不应该为'nil'。删除视图中可能产生空指针异常的任何代码都会导致视图被呈现,但视图中调用的其他任何实例变量都不会返回值,这会告诉我问题来自控制器。方法范围变量并不真正与问题有关,我只是复制了模块的开头7行左右。 – jimmydief 2012-07-24 22:15:08