Ruby on rails Rails无关表
我有一个客户表,它引用了一个国家/地区表。在插入客户机时,在下拉列表中向用户提供国家,从而在客户机表中插入国家的id。如何在客户端显示页面上显示国家名称而不是Id 我猜您的关联设置与下面类似,在这种情况下,您可以通过关联Ruby on rails Rails无关表,ruby-on-rails,Ruby On Rails,我有一个客户表,它引用了一个国家/地区表。在插入客户机时,在下拉列表中向用户提供国家,从而在客户机表中插入国家的id。如何在客户端显示页面上显示国家名称而不是Id 我猜您的关联设置与下面类似,在这种情况下,您可以通过关联@client.country.name而不是@client.country\u id(我在这里对变量和字段名做一些假设) 将按以下方式设立协会: class Client < ActiveRecord::Base has_one :country ... e
@client.country.name
而不是@client.country\u id
(我在这里对变量和字段名做一些假设)
将按以下方式设立协会:
class Client < ActiveRecord::Base
has_one :country
...
end
class Country < ActiveRecord::Base
belongs_to :client
...
end
class客户端
类似于
<%= select_tag 'country_id', options_from_collection_for_select(@countries, 'id', 'name') %>
但这并不完美,灌输包括一个数字。要去掉这个数字,您需要创建一个唯一的字符串,通常称为slug,然后按slug进行所有查找。在处理select标记和数据库表时,我总是发现使用collection\u select更好 你可以用
collection_select :client, :country_id, Country.all, :id, :name
我把这个放进去了,它现在好像起作用了。这是正确的解决方案吗
<%= Country.find(@client.country_id).name %>
我在显示下拉列表时没有问题,我想在显示页面中显示名称而不是id。添加了一些关于将名称添加到url的基本代码,我想这就是您所说的。我在显示下拉列表时没有问题,我想在显示页面中显示一个名称而不是id。我在模型中添加了一个方法,因为我意识到我在很多地方都需要它。
<%= Country.find(@client.country_id).name %>