使用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/

10-13 09:42