0

bundlen のインストール後にサーバーを再起動しました

私の環境

ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]

book.rb の検索機能を削除すると、表示されます

undefined method `*' for Ransack::Search<class: Book, base: Grouping <combinator: and>>:Ransack::Search

book.rb に検索機能を追加すると

それは私を示しています

undefined method `result' for #<Array:0x007f9fa40327d0>

index.html

  def index
    @carts = Cart.all

    @search = Book.search(params[:q])
    puts @search*50
    @books = @search.result
    puts @search.methods


    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @carts }
    end
  end

book.rb

   def self.search(isbn)

      if isbn
        find(:all, :conditions => ['isbn=?', "#{isbn}"])
      else
        find(:all)
      end
   end
4

1 に答える 1

0

puts @search*50それは奇妙です。 Ransack::Searchメソッド「*」はありません。検索結果を 50 回表示したい場合:

@search = Book.search(params[:q])
@books = @search.result
puts @books*50

ransack を使用する場合def self.searchは、Book モデルのメソッドは必要ありません。コントローラーだけで:

@search = Book.search(params[:q])
@books = @search.result
于 2013-09-13T12:06:32.850 に答える