![](/img/trans.png)
[英]Ruby on Rails. Nested form from field_form only return a hash instead of hash of array
[英]Ruby on rails. Set a form field as nil/blank from controller
我试图通过复制旧的并用新的ID保存来让用户重新列出以前发布的“演出”。 目前,所有内容都可以很好地复制并且可以保存,但是我需要其中一个字段(日期时间)为空白,因为手动设置此字段至关重要。 我不知道如何从控制器将其设置为nil / blank。
重新列出链接:
<%= link_to t('gigs.show.relist'), gig_relist_path(:gig_id => @gig.id), class: 'gig-edit-dash' %>
Gig控制器:
def relist
@oldgig = Gig.find(params[:gig_id])
@gig = @oldgig.dup
end
形成:
<div class="create-form">
<%= simple_form_for @gig do |form| %>
<div class="create-title">
<%= form.input :title, label: t('gig.title'), placeholder: t('placeholder.title') %></div>
<div class="create-location">
<%= form.input :location, label: t('gig.location'), placeholder: t('placeholder.location') %></div>
<div class="create-genre">
<ul></ul>
<%= form.label :genres %>
<%= select_tag "choose_genres", options_from_collection_for_select(Genre.all, 'id', 'name',@gig.genres.map{ |j| j.id }), :multiple => true %> </div>
<div class="create-description">
<%= form.input :description, as: :text, label: t('gig.description'), placeholder: t('placeholder.description') %></div>
<div class="create-date">
<%= form.input :date, label: t('gig.date'), placeholder: t('placeholder.date') %></div>
<div class="create-salary">
<div class="salary-input">
<p class="salary-title"> <%= t('gig.salary') %> </p>
<%= form.input :salary_currency, label: false,
collection: ["€", "£", "$" ], prompt: "Choose one" %>
<%= form.input :salary, label: false, placeholder: t('placeholder.salary') %>
</div>
</div>
在表单中将默认值设置为nil / blank无效,因为正在传递值。
@gig.date = nil
也不起作用,这会将时间设置为当前时间。
哦,亲爱的,我在发布问题大约2分钟后才想到了这一点。 我会留下答案,而不是删除帖子,以防万一其他人觉得有用。
我在@gig = @oldgig.dup
之后在控制器中设置@gig.date = nil
然后,在视图的表单字段中添加:include_blank => true
。
推理是很容易解释的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.