モデルで機能しないコールバックが 2 つあります。エラーメッセージも表示されません。
最初のコールバックは次のとおりです。after_update :state_closed
ビュー「解決済み」または「キャンセル済み」からチケットの状態を選択したときに、これを使用してチケットを閉じたいと思います。だから、この場合は閉じてほしい
2 番目のコールバックはafter_create :assign_state
、これを使用して、チケットが割り当てられているか割り当てられていないことを示したいので、employee_id が空白の場合、チケットはまだどの従業員にも割り当てられていないことを意味します。employee_id が黒ではないため、このチケットが割り当てられている場合
ここに私のチケットがあります.rb
class Ticket < ActiveRecord::Base
before_save :default_values
after_update :state_closed
after_create :assign_state
attr_accessible :description, :title, :employee_department_id, :user_id, :first_name,
:last_name , :email, :state_id, :employee_id, :ticket_state, :assign_state
belongs_to :employee_department
belongs_to :user
belongs_to :state
belongs_to :employee
has_many :replies
def default_values
self.state_id = 3 if self.state_id.nil?
end
def to_label
ticket_state.to_s
end
def state_closed
if self.ticket_state == "Solved" || self.ticket_state == "Canceled"
self.ticket_state = "Closed"
self.save
end
end
def assign_state
if self.employee_id.nil?
self.assign_state = "Un-assigned"
else
self.assign_state = "Assigned"
end
end
Ticket.all.each do |ticket|
if ticket.ticket_state.blank?
ticket.ticket_state = 'open'
end
ticket.save
end
...
これは、「解決済み」を選択したときのサーバーログからのものです。たとえば、コールバックが機能している場合は「解決済み」に更新されます。この場合、解決済みからクローズ済みに変更する必要がありますが、それは起こっていません
Started PUT "/tickets/1" for 127.0.0.1 at 2013-09-14 21:46:54 +0200
Processing by TicketsController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"LZRTSjq9EWqgG6ub3xpd7fioWNtY1SSzy5XQA8ZNep0=", "ticket"=>{"ticket_state"=>"solved"}, "id"=>"1"}
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
State Load (0.1ms) SELECT "states".* FROM "states"
Ticket Load (0.1ms) SELECT "tickets".* FROM "tickets" WHERE "tickets"."id" = ? LIMIT 1 [["id", "1"]]
(0.0ms) begin transaction
(0.2ms) UPDATE "tickets" SET "ticket_state" = 'solved', "updated_at" = '2013-09-14 19:46:54.926307' WHERE "tickets"."id" = 1
(95.2ms) commit transaction
Redirected to http://localhost:3000/tickets
Completed 302 Found in 100ms (ActiveRecord: 96.0ms)