Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 标题将所有条目保存到文本字段的表格_中_Ruby On Rails_Ruby_Form For - Fatal编程技术网

Ruby on rails 标题将所有条目保存到文本字段的表格_中

Ruby on rails 标题将所有条目保存到文本字段的表格_中,ruby-on-rails,ruby,form-for,Ruby On Rails,Ruby,Form For,尝试将表单_for字段中的所有条目命名为case,以便它们在进入数据库进行搜索时保持一致 这是我的搜索字段(创建为部分搜索的文件): 输入城市 f、 object.city.titlecase%> 输入国 f、 object.country.titlecase%> 但当我运行它时,我得到一个命名错误: nil:NilClass的未定义方法“titlecase” 我接受了来自的.object.city.titlecase的指导 有人能帮忙吗?您不想在视图中规范化数据-如果用户更改了提交的数据该

尝试将表单_for字段中的所有条目命名为case,以便它们在进入数据库进行搜索时保持一致

这是我的搜索字段(创建为部分搜索的文件):


输入城市
f、 object.city.titlecase%>
输入国
f、 object.country.titlecase%>
但当我运行它时,我得到一个命名错误:

nil:NilClass的未定义方法“titlecase”

我接受了来自的
.object.city.titlecase
的指导


有人能帮忙吗?

您不想在视图中规范化数据-如果用户更改了提交的数据该怎么办?相反,您可以在模型中使用
before\u save
(或
before\u validation
)回调来处理它。下面是类似您的模型的相关代码示例:

class Place < ActiveRecord::Base
  before_save do |place|
    place.city = place.city.downcase.titleize
    place.country = place.country.downcase.titleize
  end
end
classplace
您还可以查看更多信息


为了更直接地回答您的问题,类似这样的方法可以奏效:

<%= f.text_field :city, :value => (f.object.city ? f.object.city.titlecase : '') %>  
(f.object.city?f.object.city.titlecase:“”)%%>

这只意味着如果
f.object.city
存在,则显示其
标题库版本,如果未显示空白字符串。

错误消息来自
f.object.city
f.object.city
的值为
nil
。而且
nil
没有
titlecase
方法,因此出现了一个错误。因为它是一个空表单,值不总是nil-tho吗?那么,您将如何编写它以使表单中输入的任何内容都以标题为基础呢?请参阅下面我的答案,了解您希望在服务器端执行的操作。您可以使用Javascript在用户键入内容时将其大写,但这可能会让用户感到困惑。稍后的Ruby版本允许您通过使用以下命令来模拟可用的web脚本语言:“f.object.city&.titlecase”“&”基本上表示,“当然,只要返回nil,如果请求nil属性,就不会使页面崩溃。”
<%= f.text_field :city, :value => (f.object.city ? f.object.city.titlecase : '') %>