【发布时间】:2014-10-12 14:07:06
【问题描述】:
实际上 Rails 正在做它应该做的事情,但我想改变它。
我的旅行表格有一个城市名称字段,在表格的代码中列为:city_id(该名称用于在保存旅行之前查找城市。)
因为当我将@trip 传递给表单以编辑行程时,此字段称为:city_id,Rails 显示城市ID,而不是城市名称。我该如何更改?
城市:410
我想要:
城市:美国旧金山
旅行表单视图:
<%= form_for @trip do |f| %>
<%= f.label :city_id, "City" %>
<%= f.text_field :city_id, options = { id: "navbar-search-input", class: 'form-control', placeholder: 'San Francisco, United States' } %>
<br>
<%= f.label :start_date %>
<%= f.date_select :start_date %><br>
<%= f.label :end_date %>
<%= f.date_select :end_date %><br>
<%= f.submit "Add trip" %>
<% end %>
当我将参数列入白名单时,我将字符串名称转换为城市 ID
:city_id => City.find_by_display(params[:trip][:city_id]).id
在我的城市模型 City.display = "City name, Country name"
那么如何让编辑表单显示 City.display 而不是 City.id?
【问题讨论】:
-
您对新操作和编辑操作使用相同的表单?
-
是的,唯一改变的是提交按钮上的文字
标签: ruby-on-rails