Ruby on rails Rails 3-如何表示属于某个城市的用户模型?
我有一个用户模型,每个用户都有一个公司名称和与之关联的城市。对于该项目,我需要根据城市列出每个用户。e、 g:全市/旧金山,全市/纽约。目前,这些都是我们心目中的模型Ruby on rails Rails 3-如何表示属于某个城市的用户模型?,ruby-on-rails,ruby-on-rails-3,rails-activerecord,Ruby On Rails,Ruby On Rails 3,Rails Activerecord,我有一个用户模型,每个用户都有一个公司名称和与之关联的城市。对于该项目,我需要根据城市列出每个用户。e、 g:全市/旧金山,全市/纽约。目前,这些都是我们心目中的模型 class User < ActiveRecord::Base attr_accessible :name, :company belongs_to :city end class City < ActiveRecord::Base attr_accessible :name, :slug has
class User < ActiveRecord::Base
attr_accessible :name, :company
belongs_to :city
end
class City < ActiveRecord::Base
attr_accessible :name, :slug
has_many :users
end
class用户
此外,城市不能是预定义的列表。它应该在数据库中创建每个用户时创建
因此,在创建/更新用户时,如何访问或创建城市?您需要查看用户模型上的嵌套属性
以下是
接受
的嵌套属性的文档,该方法应该可以帮助您 首先,您需要向城市模型中添加以下属性:城市的属性和城市的属性:
class City < ActiveRecord::Base
attr_accessible :name, :slug, attributes_for :cities_attributes
accepts_nested_attributes_for :cities
has_many_users
end
class City
由于您现在可以访问城市模型中的所有属性,因此可以使用字段将这些属性包含在表单中
<%= form_for@city do |f| %>
# City attributes
<%= f.fields_for :users do |c| %>
# User attributes
<% end %>
<% end %>
#城市属性
#用户属性
在索引视图中,还可以使用嵌套:
<% @cities.each do |city| %>
# city attributes goes here
<% city.users.each do |user| %>
# user attributes goes here
#城市属性在这里
#用户属性在这里
第一行显示您定义的每个城市的所有属性,而第二行显示特定城市的每个用户的属性