タグ

ブックマーク / qiita.com/kuboon (2)

  • try と try! の使い分け - Qiita

    a.try(:hoge) #=> nil a.try!(:hoge) #=> NoMethodError はーぁん、にゃーるほーどねー。 これ見て初めて気付いたのですが、 「try メソッドには 2 つの効用がある」 のですね。 a が nil の時、何もしない a に hoge が実装されてない時、何もしない 両方の効用を持つのが try 1 つ目の効用しか持たないのが try! というわけです。 2 つ目の効用も便利っちゃあ便利ですが、メソッド名を typo するとわかりづらいバグになることもありそうです。 実際 try を使うときは、レシーバ (上の例で a ) が nil かどうかで使う 1 つ目の効用を利用したい場合が殆どだと思われるので、積極的に try! を使っていくといいかと思います。 ruby2.3記念追記 rails にまず導入されたのが try で、その後、「NoMe

    try と try! の使い分け - Qiita
    chezou
    chezou 2014/09/29
    なるほどtry!
  • resources を nest するときは shallow を使うと幸せになれる - Qiita

    scaffold を制するものは rails を制す、という言い伝えがありますが、 rails g scaffold User などとすると routes.rb に突如現れるのが、 resources というやつです。 いまここに、Group と User という2つのモデルがあり、 Group が has_many :users で、 User が belongs_to :group だとしましょう。よくある関係ですね。 このような場合に、resources を こんな風に nest すると、新規に User を作る時の URL が /groups/:group_id/users/new となり、自然な形で group_id を渡すことができます。 ところが、このように routes を定義すると、いざ User が生成された後にその User を show するには /groups/:

    resources を nest するときは shallow を使うと幸せになれる - Qiita
  • 1