【问题标题】:Array column field rendering in fields_for … Not Renderedfields_for 中的数组列字段渲染……未渲染
【发布时间】:2013-08-30 17:10:50
【问题描述】:

在 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>

谢谢

【问题讨论】:

  • 你能展示整个form_builder和控制器动作吗?我相信您缺少实例变量或输入错误的 fields_for 参数。
  • 添加和更新代码

标签: ruby-on-rails arrays postgresql ruby-on-rails-4


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    相关资源
    最近更新 更多