質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

2回答

1316閲覧

値がなくても実行したい

pepper

総合スコア29

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2016/10/07 09:41

###実現したいこと
以下のコードの中身はまだ入っていおらず、空です。

<p class="blog-time"><%= @printer_3d.created_at %></p>

なので、中身がないとのエラーが出てしまうのですが、
データが無くても実行してくれるようにするには、「if文」などはどのように書けばいいでしょうか?

undefined method `created_at' for nil:NilClass

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Railsに含まれるActiveSupportにはRuby本体を便利にしてくれる拡張モジュールが色々入っています。
そのなかの tryメソッド を使うのがRails wayです。

Ruby本体でもVersion2.3.0からsafe navigation operator(ボッチ演算子、lonely operator)が導入されていますのでruby 2.3以上をお使いであれば &. も使えます。

Ruby 2.3.0 リファレンスマニュアル > メソッド呼び出し(super・ブロック付き・yield)
どこに書いてあるか、ちょっとわかりにくいので引用すると。。。

メソッド呼び出しで . の代わりに &. を使うことができます。 この形式でメソッドを呼びだそうとすると、レシーバが nil の場合は 以下のように働きます。

  • 引数の評価が行なわれない
  • メソッド呼び出しが行われない
  • nil を返す

レシーバが nil でない場合は通常のメソッド呼び出しが行われます。

投稿2016/10/07 23:06

編集2016/10/07 23:09
hana-da

総合スコア1728

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pepper

2016/10/11 03:53

返事遅れてしまい大変申し訳ございません。 まだまだ分からないことだらけなので、貴重な記事の情報とても助かりました。 ありがとうございます!
guest

0

ベストアンサー

Ruby on Railsは門戸外ですが、

とにかく動かしたいのであれば、とりあえず固定の値でもいいのでcreate_atメソッドを実装するといいと思います。

こんなのでいいです。

# これで動かなかったらすみません create_at() return "2016-10-07" end

もしそれで「クラスが違うよ」などの旨のエラーが出た場合は、プログラムが求める型を返すように組みましょう。

投稿2016/10/07 12:19

manzyun

総合スコア2244

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pepper

2016/10/07 12:45

なんとか動きました!ありがとうございます! <% if @printer_3d != nil %> <% end %> こんなのでも動くっぽいです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問