rails form_for嵌套数据不显示

时间:2013-07-17 01:40:15

标签: ruby-on-rails model-view-controller ruby-on-rails-4

对rails很新,并对如何处理这个问题感到困惑。我正在使用rails 4.我非常困在这里,并试图解决这个问题。

我有一个列表页面,我也想添加标签。在我看来( listings / new.html.erb ),我有以下内容:

<h1> POST A NEW LISTING </h>

    <% if current_user.nil? %>
        <h2>You must be logged in to view this page </h2>
    <% else %>
        <%= form_for [@user, @listing] do |f| %>
      <%= f.label :title, 'Title' %> <br />
      <%= f.text_field :title %>

      <%= f.label :general_info, 'General Information' %> <br />
      <%= f.text_area :general_info %>

      <%= f.label :included, 'Included' %> <br />
      <%= f.text_field :included %>

       <%= f.label :length, 'Length' %> <br />
      <%= f.text_field :length %>

      <%= f.label :price, 'Price' %> <br />
      <%= f.text_field :price %>

      <% fields_for @tagging do |u| %>
        <%= u.label :tag, 'Tag' %> <br />
        <%= u.text_field :tag %>
      <% end %>

      <%= f.submit "submit" %>
    <% end %>

    <% end %>

表单可以正确放入列表,但标记表单选项甚至看起来不允许内容。

我的listings_conroller #new看起来像这样:

  def new
    if (!current_user.nil?)
      @user = User.find(current_user.id)
      @listing = @user.listings.build
      @tagging = @listing.taggings.build

    end
  end

我希望能够使用此表单创建一个新列表,该表单还会填充标记的数据库,我不确定如何执行此操作。我希望这是足够的信息,但如果需要,我在这里有所有代码:https://bitbucket.org/r-s/ath/src。非常坚持这一点任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

将其更改为:

<%= f.fields_for @tagging do |u| %>

请注意=

答案 1 :(得分:1)

您忘记使用构建器:

  <%= f.fields_for @tagging do |u| %>