如何在Rails提交中设置多个默认表单值?

岩石

attendance该表具有属性statusdaterecuritment_idproject_site_id

project_siteone_to_many有关联attendance

recuritment与拥有“一对多”关联attendance

recruitment当attribute status#form视图中加入属性时,我将从表中获取属性

<% (1..(Time.days_in_month @project_site.attendance_month.strftime("%m").to_i)).each do |date| %>这里@ project_site.attendance_month包含考勤月份值。基于月我计算天数列以及namerecuritmnet表。

这是视图-

在此处输入图片说明


holydays主包含对应月份的宗教节日的日期,并鉴于其自动匹配日期和打印“H”,
选择P.所有输入默认有最终submission_button是chnages布尔属性。现在,在最终提交时,我想将所有默认选择的P送到出勤表中。


Attenance_controller.rb
  def new
    if @project_site.submission_status == false
      @attendance = Attendance.new

      @date = HolydayCalendar.all

      @recruitment = Recruitment.all.where(current_status: "2")
    else
      redirect_to project_site_attendances_path
    end
  end

from.html.erb(考勤控制器视图)

<table>
   <thead>
      <tr>
         <th class="attendance-emp-name">Emp. Name</th>
         <% (1..(Time.days_in_month @project_site.attendance_month.strftime("%m").to_i)).each do |date| %>
         <th class="text-center"><%= date %></th>
         <% end %>
      </tr>
   </thead>
   <tbody>
      <% @recruitment.where(location: @project_site.site_id).each do |recruitment| %>
      <tr>
         <td class="attendance-emp-name"><%= recruitment.name %></td>
         <% (1..(Time.days_in_month @project_site.attendance_month.strftime("%m").to_i)).each do |date| %>
         <%= form_with(model: attendance, :html => {:id => 'attendance-form-validation'}, url:[@project_site, @attendance], local: true) do |f| %>
         <% if HolydayCalendar.find_by(date: (@project_site.attendance_month.strftime("%Y-%m")+"-"+date.to_s), total_site_id: @project_site.site_id)%>
         <td class="holyday text-center"><%= "H" %></td>
         <% elsif recruitment.attendances.find_by(attendance_date: (@project_site.attendance_month.strftime("%Y-%m")+"-"+date.to_s)) == nil %>
         <td>
            <%= f.select :status, [['P', 1], ['A', 2], ['L', 4], ['WE', 5], ['CO', 6]], {}, { onchange: 'this.form.submit()', class: 'attendance-select-input' } %>
         </td>
         <% else %>
         <% attendance_value =  recruitment.attendances.find_by(attendance_date: (@project_site.attendance_month.strftime("%Y-%m")+"-"+date.to_s)) %>
         <%if attendance_value.status == 1 %>
         <td class="presant text-center"><%="P" %></td>
         <% elsif attendance_value.status == 2 %>
         <td class="absent text-center"><%="A" %></td>
         <%elsif attendance_value.status == 3 %>
         <td class="holyday text-center"><%="H" %></td>
         <%elsif attendance_value.status == 4 %>
         <td class="leave text-center"><%= "L" %></td>
         <%elsif attendance_value.status == 5 %>
         <td class="weekend text-center"><%= "WE" %></td>
         <%elsif attendance_value.status == 6 %>
         <td class="compoff text-center"><%= "CO" %></td>
         <% end %>
         <% end %>
         <%= f.hidden_field :attendance_date, value: (@project_site.attendance_month.strftime("%Y-%m")+"-"+date.to_s)%>
         <%=f.hidden_field :recruitment_id, value: recruitment.id%>
         <%=f.hidden_field :project_site_id, value: @project_site.id%>
         <% end %>
         <% end %>
      </tr>
      <% end %>
   </tbody>
</table>
<% if @project_site.submission_status == true %>
<div class="text-center">
   <%= link_to "Submit Attendance", set_submission_status_project_site_path(@project_site), method: :put, data: { confirm: 'Make Sure you marked all attendance before submission' }, :class=>"button primary disabled" %>
</div>
<% else %>
<div class="text-center">
   <%= link_to "Submit Attendance", set_submission_status_project_site_path(@project_site), method: :put, data: { confirm: 'Make Sure you marked all attendance before submission' }, :class=>"button primary" %>
</div>
<% end %>


project_sites_controller.rb

  def set_submission_status
      @project_site = ProjectSite.find(params[:id])
      @project_site.update(submission_status: true)

  end
雷克斯福德凯利

尚不清楚您的问题是什么,但我认为这与您的表单发送回数组op选项有关。

如果您希望html表单返回信息数组,则需要使用name = "attendance[]"语法在html中进行指示,请注意方括号。

查看有关主题的本文https://mattstauffer.com/blog/a-little-trick-for-grouping-fields-in-an-html-form/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在表单中设置默认值

Rails:如何在ActiveRecord中设置默认值?

如何在表单上设置多个值?

如何在Kendo UI中的表单选择中设置默认选择值?

如何在单个HTML表单中提交多个值?

如何在flask-bootstrap中为多个选择设置多个默认值

如何在React表单组件中为选择菜单设置默认值?

如何在Spring Boot中设置对象的默认表单值:Thymeleaf

如何在 Django 表单选择字段中设置默认值?

创建表单后,如何在ionic select中设置默认值?

如何在页面加载时在表单中设置默认值?(路轨)

如何在Magento中为表单字段设置默认选择值?

如何通过javascript或jquery在表单中设置多个默认按钮?

如何从表单提交中提升状态中的多个值?

如何在jQuery中设置表单提交时间的限制

如何在Angular中为multiselect select标签设置多个默认值

如何在python中从一行设置多个输入的默认值

如何在Xcode中设置表单的默认按钮?

如何在Ruby on Rails装置YAML文件中为HStore字段设置默认值?

如何在Rails中为参数设置默认值?

如何在Rails 4表单中为单选按钮设置布尔值

Firebase - 在表单提交后在选择字段中设置默认值

如何在Asyncstorage中设置多个值

如何在Rails中设置标志值?

如何从 Observable 设置默认表单值?

如何在包含多个 TextView 的 LinearLayout 中设置默认 textColor?

无法在Django中设置默认表单值

如何在Outlook撰写表单中设置多个位置?

如何在提交时获取表单值?