4

保存在 db 中的数组作为数组 .. 该数组中的每个项目都应呈现为 fields_for 中的 text_fields。(在我的带有 Postgres DB 的 Rails 4 应用程序中)

未按预期呈现...请寻找您的建议。

代码如下:

资源迁移有:

t.string :news_outlets, array: true

父帖子的 _form.html

<%= form_for [@post, @post.declare_victory], :html => {} do |f| %>
  <%= f.hidden_field :post_id, value: @post.id %>
  <%= f.fields_for :news_outlets do |news_outlet| %>
   <%= render 'news_outlet_fields', f: news_outlet %>
   <div>
   <%= link_to_add_item t('add_news'), news_outlet, '/news_outlet_fields', 'news_outlets'%>
  </div>
 <% end %>
<% end %>

DeclareVictory 中的控制器动作

def create
 @declare_victory = @post.build_declare_victory declare_victory_params
 @declare_victory.user = current_user
 @declare_victory.save

 redirect_to @post, notice: t('success')
end

_news_outlet_fields.html 部分渲染

<div class="form-group">
 <%= f.text_field '', id: 'declare_victory_news_outlets', :class => 'form-control',     :placeholder => t('news_outlets.new_news') %>
</div>

谢谢

4

1 回答 1

1

text_field需要包含属性名称才能进行批量分配。

<%= f.text_field :news_outlets, :class => 'form-control', :placeholder => t('news_outlets.new_news') %>

按照您的方式,name属性不会正确,因此参数不会正确,因此批量分配尝试不会从表单中获取新的数据分配。

于 2013-09-12T03:26:29.260 回答