0

保存する前にユーザーのサブドメインを適切にフォーマットするために、User.rbモデルにこれがあります:

def subdomain=(c)
   write_attribute(:subdomain, c.tr('^A-Za-z0-9', '').downcase) 
end

しかし、API に対してクライアント側 (バックボーン) の PUT 要求を実行すると、サブドメインを含まない属性が更新されます...

Request Payload: { bg_hue: "359", id: 4 }

..上記のカスタム モデルの検証により、500 応答が発生し、次のエラーが指定されています。

NoMethodError at /user/4=================================> undefined method `tr' for nil:NilClass

つまり、モデルの c.tr 行にぶら下がっています

最初にリクエストにコントローラーのサブドメインが含まれているかどうかを確認してから、サブドメインの有無にかかわらず保存してみてください。これで上記の問題を回避できると思いますが、問題が何であるかは完全にはわかりません.

助言がありますか?

4

1 に答える 1

2

エラーメッセージはあなたに伝えていますundefined method `tr' for nil:NilClass。問題は、c渡される値がnil. おそらく次のようなことをする必要があります:

def subdomain=(c)
   write_attribute(:subdomain, c.tr('^A-Za-z0-9', '').downcase) unless c.nil?
end
于 2013-04-07T20:23:16.363 に答える