【问题标题】:Ruby on rails. Set a form field as nil/blank from controller红宝石在铁轨上。从控制器将表单字段设置为 nil/空白
【发布时间】:2016-03-07 18:30:34
【问题描述】:

我试图让用户通过复制旧的“演出”并使用新 ID 保存他们之前发布的“演出”。目前一切都很好,可以保存,但我需要其中一个字段(日期时间)为空白,因为他们手动设置它是至关重要的。我不知道如何从控制器将其设置为 nil/blank。

重新发布链接:

<%= link_to t('gigs.show.relist'), gig_relist_path(:gig_id => @gig.id), class: 'gig-edit-dash' %>

演出控制器:

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 

也不行,这会将时间设置为当前时间。

【问题讨论】:

    标签: ruby-on-rails forms controller


    【解决方案1】:

    天哪,我在发布问题大约 2 分钟后才发现这一点。我会留下答案而不是删除帖子,以防万一其他人觉得它有用。

    我在@gig = @oldgig.dup之后的控制器中设置了@gig.date = nil

    然后将 :include_blank =&gt; true 添加到视图中的表单字段中。

    推理是不言自明的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 2016-03-21
      • 2016-01-07
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      相关资源
      最近更新 更多