使用Ruby on Rails 3:
我半理解accepts_nested_attributes_for应该如何工作,但我无法找到一种实用的方法来在表单中实现它。例如,如果有人想在其用户页面中添加其最近的位置:
用户地址
class User < ActiveRecord::Base
has_many :locations
accepts_nested_attributes_for :locations
end
位置B
class Location < ActiveRecord::Base
belongs_to :user
end
位置表
location
-location
-length_of_stay
-user_id
关于如何在用户视图中实际实现这一点,有什么想法吗?文档中没有任何关于视图的内容。
我试着使用RailsCast教程,但它没有起到任何作用——我相信这个角色是为Rails2.3制作的,但我不确定3中是否有不同的用法。
最佳答案
当您有一些链式模型并希望以一种形式创建和编辑它们时,接受嵌套的属性需要实现的情况。
例如:用户及其位置
这是很普遍的情况,而且应用广泛。例如:
<%= form_for @user, users_path do |form| %>
<%= form.text_field :name %>
<%= form.fields_for :locations do |f| %>
<%= f.text_field :location %>
...
<% end %>
<%= form.submit %>
<% end %>
您应该阅读关于activerecord::nestedattributes::classmethods的:http://api.rubyonrails.org/
关于ruby-on-rails - accepts_nested_attributes_用于Rails 3中的实用形式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5717421/