1

我收到这个错误

#ActiveRecord::Relation:0x0000001c3f57e8 的未定义方法“created_at”

控制器

    @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
4

2 回答 2

3

因为这行@post = @user.comment_threads返回一个对象ActiveRecord::Relation给你。最好在句子的末尾加上一个.last.first,这样你就可以有一个Post对象。

于 2012-12-27T10:41:09.410 回答
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
于 2012-12-27T10:55:00.143 回答