Ruby on rails 范围条件未在视图中呈现

Ruby on rails 范围条件未在视图中呈现,ruby-on-rails,Ruby On Rails,我在Messages模型上创建了一个作用域,以便它只列出会话id为NULL的消息。但是,添加后,它没有对收件箱进行任何更改,因为它仍然显示带有对话id的邮件 有人能指出我做错了什么吗 class Message < ActiveRecord::Base scope :inbox, -> {where('conversation_id IS NULL')} scope :unread, -> {where('read_at IS NULL')} class消息{wher

我在Messages模型上创建了一个作用域,以便它只列出会话id为NULL的消息。但是,添加后,它没有对收件箱进行任何更改,因为它仍然显示带有对话id的邮件

有人能指出我做错了什么吗

class Message < ActiveRecord::Base
  scope :inbox, -> {where('conversation_id IS NULL')}
  scope :unread, -> {where('read_at IS NULL')}
class消息{where('conversation\u id为NULL')}
作用域:未读,->{where('read_at为NULL')}
控制器

class MessagesController < ApplicationController

  before_filter :set_user

  def index
    @messages = Message.scoped
    @message = Message.new
    if params[:mailbox] == "sent"
      @messages = @user.sent_messages.paginate :per_page => 10, :page => params[:page], :order => "created_at DESC"
    elsif params[:mailbox] == "inbox"
      @messages = @user.received_messages.paginate :per_page => 10, :page => params[:page], :order => "created_at DESC"
    #elsif params[:mailbox] == "archived"
     # @messages = @user.archived_messages
    end
    if params[:mailbox] == "unread"
    @messages = @user.unread_messages.paginate :per_page => 10, :page => params[:page], :order => "created_at DESC"
  end
  if params[:mailbox] == "trash"
    @messages = @user.deleted_messages.paginate :per_page => 10, :page => params[:page], :order => "created_at DESC"
  end
end
class messages控制器10,:page=>params[:page],:order=>created\u at DESC
elsif参数[:邮箱]=“收件箱”
@messages=@user.received_messages.paginate:per_page=>10,:page=>params[:page],:order=>created_at DESC
#elsif参数[:邮箱]=“已存档”
#@messages=@user.archived\u消息
结束
如果参数[:邮箱]=“未读”
@messages=@user.unread\u messages.paginate:per\u page=>10,:page=>params[:page],:order=>created\u at DESC
结束
如果参数[:邮箱]=“垃圾”
@messages=@user.deleted_messages.paginate:per_page=>10,:page=>params[:page],:order=>created_at DESC
结束
结束

所以您正在创建一个作用域
收件箱
,但您没有在控制器中使用它。这是否回答了您的问题?

您忘了在controller中调用范围,我相信是:

elsif params[:mailbox] == "inbox"
  @messages = @user.received_messages.inbox.paginate :per_page => 10, :page => params[:page], :order => "created_at DESC"

谢谢我完全忽略了这一点。