2014-10-08 63 views
0

我正在学习如何使用Ruby on Rails,并遇到一些烦人的问题,试图从控制器的测试类访问灯具。不幸的是,尽管遵循了Rails测试指南中的正确方法,但我得到了'TypeError:无法将Symbol转换为整数'错误。有没有人有任何想法可以解决这个问题。对于我的控制器的代码的示例如下所示:无法从控制器测试访问灯具Ruby on Rails

class ExerciseLogsController < ApplicationController 
    skip_before_filter :verify_authenticity_token 

    def show 
    @exerciseLog = ExerciseLog.find(params[:id]) 

    respond_to do | format | 
     format.json { render json: @exerciseLog } 
     format.xml { render xml: @exerciseLog } 
    end 
    end 

单元测试如下:

require 'test_helper' 

class ExerciseLogsControllerTest < ActionController::TestCase 
    fixtures :exercise_logs 

    test "get existing exercise log" do 
    get :show, :id => 2, :format => 'json' 

    assert_response :success 
    assert_not_nil(assigns[:exerciseLog], "Exercise log should not be nil.") 
    assert_equal(exercise_logs[:log2].description, assigns[:exerciseLog].description, "Log description is not the description for log 2.") 
    end 
end 

我的夹具如下所示:

log2: 
    id: 2 
    user_id: 1 
    description: Walking in my lunch break. 
    startTime: 2014-09-11 14:00:00 
    endTime: 2014-09-11 15:00:00 
    distance: 1200 

回答

0

没关系。它看起来像行:

exercise_logs[:log2].description 

应该是:

exercise_logs(:log2).description