次のコードを取ります。
class ChallengesController < ApplicationController
def update
@challenge = Challenge.find(params[:id])
@challenge.update!(params[:challenge]) # never an expected error, show error page and give hoptoad notification
respond_to do |format|
format.html { redirect_to :action => 'index' }
end
end
end
class Challenge < ActiveRecord::Base
def update!(options)
if options[:accept] == '1' then
self.accepted = true
self.response_at = Time.now
self.shots = options[:shots] unless options[:shots].blank?
self.challengee_msg = options[:challengee_msg] unless options[:challengee_msg].blank?
else
self.accepted = false
self.response_at = Time.now
end
end
end
モデルに渡されるparamsハッシュを認識することは悪い習慣と見なされますか?もしそうなら、それが「ベストプラクティス」に従うようにどのようにリファクタリングしますか?