fields_for中的数组列字段呈现...未呈现

时间:2013-08-30 17:10:51

标签: ruby-on-rails arrays postgresql ruby-on-rails-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>

由于

1 个答案:

答案 0 :(得分:1)

text_field需要包含质量分配的属性名称。

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

你拥有它的方式,name属性不会是正确的,因此params不会是正确的,因此质量分配尝试不会从新的数据分配中获得形式。