Ruby on rails 标题将所有条目保存到文本字段的表格_中
尝试将表单_for字段中的所有条目命名为case,以便它们在进入数据库进行搜索时保持一致 这是我的搜索字段(创建为部分搜索的文件):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的指导 有人能帮忙吗?您不想在视图中规范化数据-如果用户更改了提交的数据该
输入城市
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 : '') %>