[英]how to set multiple default form values on submission in rails?
attendance
table that takes has attribute status , date , recuritment_id , and project_site_id . attendance
表具有属性status 、 date 、 recuritment_id和project_site_id 。
project_site
has one_to_many association with attendance
project_site
与attendance
有one_to_many关联
recuritment
has one_to_many association with attendance
. recuritment
与attendance
有 one_to_many 关联。
i am taking attribute from recruitment
table when attribute status
is joined in attendance#form view.当属性
status
加入出勤#form 视图时,我正在从recruitment
表中获取属性。
<% (1..(Time.days_in_month @project_site.attendance_month.strftime("%m").to_i)).each do |date| %>
<% (1..(Time.days_in_month @project_site.attendance_month.strftime("%m").to_i)).each do |date| %>
here @project_site.attendance_month contains the attendance month value. <% (1..(Time.days_in_month @project_site.attendance_month.strftime("%m").to_i)).each do |date| %>
这里@project_site.attendance_month包含出勤月份值。 based on month i calculate number of days column along with name
from recuritmnet
table.根据月份,我计算天数列以及
recuritmnet
表中的name
。
here is view-这是视图-
holydays master contains corresponding month holyday's date and in view it auto match date and prints "H", Holydays master 包含相应月份的 Holyday 日期,并在视图中自动匹配日期并打印“H”,
All input default selected as P. there is final submission_button that chnages boolean attribute.所有输入默认选择为 P。最终的 submit_button 更改 boolean 属性。 now on final submission i want to push all default selected P into attendance table.
现在在最终提交时,我想将所有默认选择的P推送到考勤表中。
<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 %>
from.html.erb (attendance controller view) from.html.erb(出席controller查看)
def set_submission_status
@project_site = ProjectSite.find(params[:id])
@project_site.update(submission_status: true)
end
project_sites_controller.rb project_sites_controller.rb
def set_submission_status @project_site = ProjectSite.find(params[:id]) @project_site.update(submission_status: true) end
It's a little unclear what your question is, but I gather it has to do with your form sending back an array op options.有点不清楚您的问题是什么,但我认为这与您发送回数组操作选项的表单有关。
If you want your html form to return an array of information, then you need to indicate it in your html using the name = "attendance[]"
syntax, notice the square brackets.如果您希望 html 表单返回一个信息数组,那么您需要在 html 中使用
name = "attendance[]"
语法指出它,注意方括号。
Check out this article on the subject https://mattstauffer.com/blog/a-little-trick-for-grouping-fields-in-an-html-form/查看这篇关于主题https://mattstauffer.com/blog/a-little-trick-for-grouping-fields-in-an-html-form/的文章
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.