我有引用国家/地区表的客户表。插入客户端时,国家/地区会在下拉列表中提供给用户,从而在客户端表中插入国家/地区的 ID。您如何在客户端显示页面上显示国家/地区名称而不是 Id。
问问题
294 次
4 回答
0
我猜您的关联设置类似于下面,在这种情况下,您可以通过关联@client.country.name
而不是@client.country_id
(我在这里对变量和字段名称做出一些假设)来引用国家/地区名称。
协会将建立如下:
class Client < ActiveRecord::Base
has_one :country
...
end
class Country < ActiveRecord::Base
belongs_to :client
...
end
于 2013-01-29T01:25:08.093 回答
0
就像是...
<%= select_tag 'country_id', options_from_collection_for_select(@countries, 'id', 'name') %>
http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tag
根据您在下面的评论,在 url 中获取单词的最简单方法是覆盖模式中的参数,如下所示:
def to_param
"#{id}-#{name}".parameterize
end
但这并不完美,并且灌输了一个数字。要摆脱数字,您将创建一个唯一的字符串,通常称为 slug,然后通过 slug 完成所有查找。
于 2013-01-29T01:25:48.600 回答
0
在处理选择标签和数据库表时,我总是发现最好使用 collection_select http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select
您可以使用
collection_select :client, :country_id, Country.all, :id, :name
于 2013-01-29T02:11:43.603 回答
0
我放了这个,它现在似乎可以工作了。这是正确的解决方案吗?
<%= Country.find(@client.country_id).name %>
于 2013-01-29T03:59:45.397 回答