ruby-on-rails - Rails 嵌套模型与 formattastic 是否跳过一个字段?

标签 ruby-on-rails ruby ruby-on-rails-3 formtastic nested-attributes

我有这个结构模型

class Tournament < ActiveRecord::Base
  AGES = ["5u", "6u", "7u", "8u"]
  has_many  :courts, :dependent => :destroy
  accepts_nested_attributes_for :courts, :reject_if => lambda { |a| a[:name].blank? }, :allow_destroy => true

class Court < ActiveRecord::Base
  belongs_to :tournament, :autosave => true
  has_many  :ages, :dependent => :destroy
  accepts_nested_attributes_for :ages, :reject_if => lambda { |a| a[:name].blank? }, :allow_destroy => true

class Age < ActiveRecord::Base
  belongs_to :court

现在我的表单看起来像这样

_form.html.erb

<%= semantic_form_for @tournament do |f| %>
<%= f.inputs do %>
  <%= f.input :name, :hint => "What is the name of the Tournament?" %>
<%= f.semantic_fields_for :courts do |builder| %>
       <%= render :partial => "court_fields", :locals => { :f => builder } %>
   <% end %>

_court_fields.html.erb

<div class="nested_fields">
<%= f.input :name, :input_html => {:class => "name"} %>
<%= f.semantic_fields_for :ages do |builder| %>
  <%= render :partial => "age_fields", :locals => { :f => builder } %>
<% end %>

_age_fields.html.erb

 Testing ...am I getting in here
<%= f.input :name, :as => :check_boxes, :collection => Tournament::AGES, :input_html => {:class => "age_limits"} %>

一切似乎都运行良好,除了在ages_fields部分中没有显示任何内容...不是复选框,甚至没有虚拟文本测试...我在这里没有显示... .任何可能导致问题的想法

最佳答案

我能想到的明显原因是:您确定您的法院年龄吗?

[编辑]法院之间的关系对我来说确实很清楚。 但您的代码只会显示 法院年龄(如果该法院已存在)。

根据您在评论中的输出:法院没有实际年龄,因此没有显示年龄。

如果您在 Controller 中执行此操作:

def new
  @tournament = Tournament.new
  @tournament.courts.build
  @tournament.courts[0].ages.build  
end

这将确保您至少拥有一个(空)球场和一个(空)年龄。

否则你也可以考虑使用像 cocoon 这样的 gem如果需要动态添加新元素。

希望这有帮助。

关于ruby-on-rails - Rails 嵌套模型与 formattastic 是否跳过一个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7939757/

相关文章:

ruby-on-rails - 如何彻底清理 ruby​​ on Rails 项目?

ruby-on-rails - 带@global gem 的 Ruby/RVM - bundle 运行失败,显示 `require' : cannot load such file — bundler (LoadError)

ruby - 在 RSpec Controller 规范中重构模拟

ruby - 如何解析抓取的 JSON 字符串

ruby-on-rails - respond_with json 奇怪之处

ruby-on-rails - 在这种情况下如何处理质量分配

ruby-on-rails - 使用 heroku db :push 时出现 LoadError

ruby-on-rails - 使用 OpenID、Twitter 或 Facebook 的 Rails 3 身份验证

ruby-on-rails - 测试没有通过

ruby-on-rails - 角色的 declarative_authorization 权限