【发布时间】:2017-09-26 13:29:54
【问题描述】:
好的,我对 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 反馈的更新代码 - 请参阅屏幕截图在此处输入图像描述【问题讨论】:
-
有什么问题? - 我认为您需要将
=添加到您的 image_tag 和 link_to 助手中。 -
您对搜索表单或页面结果有疑问吗?
-
随着页面结果..它总是空白,没有结果显示...
标签: ruby-on-rails