railsにおいての[?],[:]の記述についての疑問
[?],[:]の記述についての疑問
railsでタグの絞り込み検索機能を実装していたところ、記事を探して実装はできました。
しかし、検索アクションに記述したコードの読み方が理解できませんでした。
def search
@posts = params[:tag_id].present? ? Tag.find(params[:tag_id]).posts : Post.search(params[:keyword])
end
上記のコード自身で読み解いていくと
params[:tag_id].present?
パラメータの:tag_idが空じゃなければ
Tag.find(params[:tag_id]).posts
タグをIDで取得して紐づいた投稿を取得。
そうでなければ、
Post.search(params[:keyword])
投稿を:keywordで取得。
上記のコードにおいて、present?の後ろの?はどのような役割でしょうか?
又、Tag.find(params[:tag_id]).posts : Post.search(params[:keyword])
こちらの:は条件式の||のような役割といった解釈で間違い無いでしょうか?