我是ruby on rails的新手,我有一个下拉菜单栏,我想从当时下拉菜单栏中选择一个项目,数据库表应根据所选项目进行更新。 _applied_candidate.html.erb 这是我的部分页面
<p>Current Status: <span class="fontstyle3">
<% data = CandidateWorkFlow.select(:workflow_step, :next_step).where("step_id = ?", offer_state.current_step) %>
<% data.each do | d | %>
<%= d.workflow_step %>
<% end %>
</span></p>
<p>Next Status: <span class="fontstyle3">
<% data.each do | d | %>
<select name="user[role_id]" id="workflow_id">
<option value="">Please select</option>
<% d.next_step.split(',').each do | s | %>
<% data1 = CandidateWorkFlow.select(:workflow_step).where("step_id = ?",s) %>
<% data1.each do |l| %>
<option value=<% s %> > <%= l.workflow_step %> </option>
<% end %>
<% end %>
</select>
<% end %>
</span>
</p>
<option value=<% s %> > <%= l.workflow_step %> </option>
代码<%s%>
的这一部分将存储项的值,当选择了可选列表中的项时,代码<%=l.workflow_step %>
的这一部分是可选列表{{1然后应该调用update方法。
AppliedJob.rb 这是我的模特
<%=l.workflow_step%>
applied_jobs 这是我的数据库表 的 | id | user_id | job_posting_id |状态| applied_by_id | current_step | prev_step | 这些是我的领域 JobsController.rb 这是我的控制器
class AppliedJob < ActiveRecord::Base
end
但是在上面的代码中没有更新方法
是否可以借助模型方法更新数据库值?请帮帮我
答案 0 :(得分:1)
你可以使用大致像这样的表格和javascript来做到这一点:
<% data.each do | d | %>
<%= form_for url: <your-url> do |f| %>
<select name="user[role_id]" id="workflow_id">
<option value="">Please select</option>
<% d.next_step.split(',').each do | s | %>
<% data1 = CandidateWorkFlow.select(:workflow_step).where("step_id = ?",s) %>
<% data1.each do |l| %>
<option value=<% s %> > <%= l.workflow_step %> </option>
<% end %>
<% end %>
</select>
<% end %>
<% end %>
在你的javascript中:
$('#workflow_id').change(function(){
$('#<your-form-id>').submit();
});
在此之前,您应该制作表单并选择具有相应的ID(因为这是在循环内部,所有表单都会重复相同的ID并选择输入)