在我看来,我有一个可以分配票证的下拉people
列表organisation
。
<label for="assigned_support_id">Assigned To</label>
<%= select( "ticket", "assigned_support_id", Person.find_admin_and_support.collect {|p| ["#{p.name}", p.id]}, {:include_blank => "< Unassigned >"} ) %>
因为上面插入的空白没有任何价值,如果选择该选项,那么票证将保持分配给同一个人。
我考虑过在数据库中创建一个“未分配”的人,但是让那个“人”属于每个组织可能会很复杂......
我也考虑过使用 JavaScript 来操作 DOM 并给它一个值,但我想用“Rails 方式”来做这件事,所以我想出了以下内容:
票证.rb
before_save :check_unassigned
...
private
def check_unassigned
if self.assigned_support_id.nil? or defined?(self.assigned_support_id)
self.assigned_support_id = 0
end
end
nil
支票似乎没有做任何事情,所以我添加了支票defined
,但问题是每次我将票重新分配给另一个用户时,表格都会更新,0
所以有些东西不太正确,我不确定错误是什么。
我还考虑update
通过检查 [:params][:assigned_support_id] 来更新我的控制器中的方法,但认为上面是一个更简洁的解决方案。