ruby-on-rails - Rails 指南 - 停留在多模型表单上

标签 ruby-on-rails

我正在阅读 Rails 指南 (http://guides.rubyonrails.org/getting_started.html),但卡在第 11 项“构建多模型表单”。

练习的这一部分解释了如何将一个模型的表单字段包含在另一个模型的表单中......

我的问题是第二个模型的表单字段没有显示..

代码完全按照练习(我什至绝望并直接从示例中复制粘贴代码)

我的代码发布在下面。我花了几个小时将其与指南中的代码进行比较,结果完全一样。任何人都可以指出可能出了什么问题吗?

非常感谢。

这是我包含部分的代码

<%= render :partial => 'tags/form',
             :locals => {:form => post_form} %>

这是我的部分内容

<p>Above - THIS IS DISPLAYING</p>

<%= form.fields_for :tags do |tag_form| %>

  <p>Inside - THIS IS NOT DISPLAYING</p>

  <div class="field">
    <%= tag_form.label :name, 'Tag:' %>
    <%= tag_form.text_field :name %>
  </div>
  <% unless tag_form.object.nil? || tag_form.object.new_record? %>
    <div class="field">
      <%= tag_form.label :_destroy, 'Remove:' %>
      <%= tag_form.check_box :_destroy %>
    </div>
  <% end %>
<% end %>

这是我的 Post 模型,设置为接受标签的嵌套属性

class Post < ActiveRecord::Base
  validates :name, :presence => true
  validates :title, :presence => true,
                    :length => { :minimum => 5 }

  has_many :comments, :dependent => :destroy
  has_many :tags

  accepts_nested_attributes_for :tags, :allow_destroy => :true,
    :reject_if => proc { |attrs| attrs.all? { |k, v| v.blank? } }

end

最佳答案

这是你做的吗?

We also add a @post.tags.build at the top of this form. This is to make sure there is a new tag ready to have its name filled in by the user. If you do not build the new tag, then the form will not appear as there is no new Tag object ready to create.

<% @post.tags.build %>
<%= form_for(@post) do |post_form| %>
…

如果这不起作用,请尝试将 @post.tags.build 添加到您的 PostController 的 new 方法中,看看是否能为您带来字段!

关于ruby-on-rails - Rails 指南 - 停留在多模型表单上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8834326/

相关文章:

ruby-on-rails - 帮助将 Rails Sqlite 查询转换为 postgresql

ruby-on-rails - 只有当所有其他验证都通过时才执行一个验证

ruby-on-rails - Rails 命名空间路由和资源上的自定义操作

mysql - Rails 4.2 连接到旧的遗留 Mysql 数据库 - 错误

ruby-on-rails - Rails Rspec 测试 Controller 新 Action

ruby-on-rails - form_for in dev 它是如何工作的?

ruby-on-rails - 带 i18n 翻译的 Rails select_tag

ruby-on-rails - 在 ID 存在时获取 "Unknown primary key for table"

ruby-on-rails - Ruby Rails Hartl 教程 Ch. 8.2.6 测试失败

mysql - ActiveRecord::StatementInvalid: Mysql2::Error: 无法删除或更新父行 - Rails 4.2.6