为什么我会得到未定义的方法错误?

时间:2012-12-27 10:38:51

标签: ruby-on-rails ruby-on-rails-3

我收到此错误

  

#ActiveRecord的未定义方法`created_at'::关系:0x0000001c3f57e8

控制器

    @user = User.find_by_username(params[:username])
    @post = @user.comment_threads

    if @post
        last_time = @post.created_at
        if Time.now - last_time <= 0.5.minute
            redirect_to messages_received_path 
            flash[:notice] = "You cannot spam!"   
            return
        end
    end

2 个答案:

答案 0 :(得分:3)

因为此行@post = @user.comment_threads会向您返回ActiveRecord::Relation的对象。最好在该句子的末尾添加.last.first,这样您就可以拥有一个Post对象。

答案 1 :(得分:2)

@post = @user.comment_threads返回post对象的数组。因此,对整个数组尝试created_at而不是任何post对象。

这应该有所帮助。

if @post
        last_time = @post.last.created_at
        if Time.now - last_time <= 0.5.minute
            redirect_to messages_received_path 
            flash[:notice] = "You cannot spam!"   
            return
        end
    end