gpt4 book ai didi

ruby-on-rails - 保留搜索表单数据 Ruby On Rails

转载 作者:数据小太阳 更新时间:2023-10-29 08:06:08 25 4
gpt4 key购买 nike

尝试使用 simple_form(与 formtastic 几乎相同)在我的主页上构建搜索。搜索工作正常,我得到了我的结果,但提交后我想保留用户提交的值。

我正在为我的表单使用命名空间,那么我如何才能保留表单的数据。这是一些可能有帮助的代码。

Controller

def index
@results = Property.search(params[:search])
end

查看

%h1 Search Form
= simple_form_for(:search) do |f|
= f.input :location, :as => :select, :collection => Location.all.asc(:name)
= f.input :type, :collection => PropertyType.all.asc(:name)
= f.input :bedrooms, :collection => 1..10,
%p.box
= f.button :submit

-if @results
%h1 Search Results
.results
- @results.each do |property|
.result
%h1= property.title

在 Index Controller 中,我尝试了各种方法,即

@search = params[:search]

但每次我尝试搜索都会失败。

我做错了什么?

希望大家多多指教

最佳答案

一种方法是按照 Xavier Holt 的建议,将值传递给每个输入。简单形式的 doco 建议:

 = f.input :remember_me, :input_html => { :value => '1' }

另一种方法是让 simpleform 为您完成。如果您给 SimpleForm 提供类似于 activerecord 对象的东西,SimpleForm 将自动用值填充字段。

在这种情况下,这意味着创建一个模型对象:

class PropertySearchCriteria
attr_accessor :location, :type, :bedrooms
def initialize(options)
self.location = options[:location]
self.type = options[:bedrooms]
self.bedrooms = options[:bedrooms]
end
end

然后,更改您的 Controller :

def index
@property_search_criteria = PropertySearchCriteria.new(params[:search])
@results = Property.search(@property_search_criteria)
end

(您还必须更改 Property.search 方法)

然后,更改您的 simple_form_for:

= simple_form_for(:search, @property_search_criteria) do |f|

如果您完成所有这些操作,并让星星恰到好处地对齐,那么 simpleform 将自行预填充表单字段。您可能必须向 PropertySearchCriteria 添加一些内容才能使 simpleform 正常运行。

这只是为了显示值而进行的大量填充,但如果您需要添加验证,它会让您保持理智。

关于ruby-on-rails - 保留搜索表单数据 Ruby On Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5238713/

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