2017-09-26 18 views
0

OK検索は、私はRailsのに非常に新しいですので、しばらくお待ちください:)Railsの - DEF問題

私はそれが正しい戻るようにページコントローラでデフ検索を構造化するかどうかはわかりません結果(今すぐ結果は空白です)。 私は自分のプロジェクトにコースコードを適用しています。元のコースでは、ドロップダウンの属性選択ではなく、住所別の検索方法を示しています。また、価格ではなく距離で結果を注文していました。ここで私は私のプロジェクトのために思い付くものです:

def search 
    # STEP 1 
    if params[:search].present? && params[:search].strip != "" 
     session[:loc_search] = params[:search] 
    end 

    # STEP 2 
    if session[:loc_search] && session[:loc_search] != "" 
     @rooms_type = Room.where(active: true).order(session[:loc_search], order: 'price') 
    else 
     @rooms_type = Room.where(active: true).all 
    end 

    # STEP 3 
    @search = @rooms_type.ransack(params[:q]) 
    @rooms = @search.result 

    @arrRooms = @rooms.to_a 

    end 

私はDEF検索でいくつかのミスがあることを確信している...誰かがこれを理解するために私を助けることができますか?

私のルームモデルの属性は次のとおりです。ホームページ上の

class CreateRooms < ActiveRecord 
    def change 
    create_table :rooms do |t| 
     t.string :type 
     t.timestamps 
    end 
    end 
end 

検索ウィジェットは、次のように構成されています

<%= form_tag search_path, method: :get do %> 
    <div class="row"> 
    <div class="col-md-7"> 
     <%= select_tag :type, options_for_select([['Single', 1], ['Double', 2]]), ,class: "form-control" %> 
    </div> 

    <div class="col-md-2"> 
     <%= submit_tag "Search", class: "btn btn-normal btn-block" %> 
    </div> 
    </div> 

<% end %> 

検索ページには、以下のん:

<div class = "row"> 
    <% @rooms.each do |room| %> 
    <div class = "col-md-4"> 
     <div class = "panel panel-default"> 
     <div class = "panel-heading preview"> 
      <% image_tag room.cover_photo (:medium) %> 
     </div> 
     <div class = "panel-body"> 
      <% link_to room.type, room %> 
     </div> 
     </div> 
    </div> 
    <% end %> 
</div> 

ありがとうございました。お使いのモデルの内容が間違っている: - @crispychickenのフィードバックに基づいて

更新されたコードは、スクリーンショットはここに画像の説明

enter image description here

+0

問題が何ですか。 - あなたのimage_tagとlink_toヘルパーに '='を追加する必要があると思います。 –

+0

検索フォームやページの結果に問題がありますか? – rogelio

+0

ページの結果..常に空白です。結果は表示されません。 – Lily

答えて

0

まず号を入力してください参照してください。それは移行に属します。また、activeおよびprice属性がありません。そして、私は属性typeが保護されていると思います。 RoomTypeのような名前に変更する必要があります。

移行を作成するには:

​​

をそしてrails db:migrate

第二の問題を実行します。あなたのコントローラで

のために、ステップ2でコードを変更:

@rooms_type = Room.where(active: true, room_type: session[:loc_search]).order(:price) 

typeをに変更する必要がありますファイル内のどこにでもがあります。

+0

はあなたが提案した変更を行いましたが、検索ページはまだ空です。変更のスクリーンショットを元の質問に添付しました(私は寝室room_typeではなく)。何が恋しい?ページコントローラの[:loc_search]と何か関係がありますか?私はコースからそれを再利用し、select_tag検索オプションに関連するかどうかはわかりません。ありがとう – Lily

+0

が解決しました!私がどのようにしたのか尋ねないでください。 – Lily