gpt4 book ai didi

ruby-on-rails - Ransack 不考虑参数

转载 作者:太空宇宙 更新时间:2023-11-03 16:48:34 27 4
gpt4 key购买 nike

我正在尝试为名为 Space 的对象创建一个搜索表单。我已经尝试使用很多 ifelsif,但我意识到它不起作用,所以我开始检查 Ransack。看起来很棒,如果能让它正常工作的话。

问题是,我的第一页上有我的表单,home#index。在所有教程中,表单与结果显示在同一页面上,我想转至 spaces#index,所以这是我的代码...

首页(index.html.erb)

<div class="col-md-12 text-center">
<%= search_form_for @q, class: "form-inline" do |f| %>
<div class="input-append">
<%= f.label :city %>
<%= f.search_field :city %>
<div class="row">
<button class="btn" type="submit"><i class="fa fa-search"></i></button>
</div>
</div>
<% end %>
</div>

家庭 Controller .rb

class HomeController < ApplicationController
def index
@q = Space.search(params[:q])
@spaces = Space.all
@spaceimages = Spaceimage.all
@spacetypes = @spaces.select(:spacetype).distinct
end
end

空间 Controller .rb

def index
@q = Space.search(params[:q])
@spaces = @q.result
end

这是服务器得到的:

Started GET "/spaces?utf8=%E2%9C%93&q%5Bcity%5D=Gothenburg" for 127.0.0.1 at 2015-02-04 21:32:44 +0100
Processing by SpacesController#index as HTML
Parameters: {"utf8"=>"✓", "q"=>{"city"=>"Gothenburg"}}
Space Load (0.2ms) SELECT `spaces`.* FROM `spaces`
Rendered spaces/index.html.erb within layouts/application (1.2ms)
User Load (0.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER BY `users`.`id` ASC LIMIT 1
Completed 200 OK in 52ms (Views: 50.7ms | ActiveRecord: 0.4ms)

所以参数在那里,但是 @spaces.search(或 .ransack)不对查询做任何事情。为什么?

最佳答案

其他人在看这个:确保谓词作为查询哈希的键传入,即使您定义了 model.ransackable_attributes。

像这样(first_name_cont 是这里的谓词):

>> User.ransack(first_name_cont: 'Rya').result.to_sql
=> SELECT "users".* FROM "users" WHERE ("users"."first_name" LIKE '%Rya%')

关于ruby-on-rails - Ransack 不考虑参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28330934/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com