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

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

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

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

912閲覧

スコープのwhere( )内における、< > ?の意味を教えてください

masa9216

総合スコア15

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/03/09 09:45

編集2019/03/09 09:59

以下のテキストを進めていく中で、ブログ記事を絞り込むという項目があり、理解しようと努力したのですが、
ググったり色々と調べても以下のソースコードの太字の部分、スコープのwhere( )内の< >?の意味がわかりませんでした。
テキストには、publishedスコープは下書き状態ではない記事、つまり公開記事と会員限定記事を選び出す。fullスコープは会員が書いたか下書き状態ではない記事を選び出すと書いてありますが、< >?は否定の意味なのでしょうか?

そもそも、太字のreadable_forスコープの部分など、スコープの書き方自体がよくわからないので、スコープの書き方が理解できるサイトやテキストなどあれば教えていただけると助かります。よろしくお願いいたします。

class Entry < ApplicationRecord
belongs_to :author, class_name: "Member", foreign_key: "member_id"

STATUS_VALUES = %w(draft member_only public)

validates :title, presence: true, length: { maximum: 200 }
validates :body, :posted_at, presence: true
validates :status, inclusion: { in: STATUS_VALUES }

scope :common, -> { where(status: "public") }
scope :published, -> { where("status** <> ?**", "draft") }
scope :full, ->(member) {
where("member_id = ? OR status <> ?", member.id, "draft") }
scope :readable_for, ->(member) { member ? full(member) : common }

class << self
def status_text(status)
I18n.t("activerecord.attributes.entry.status_#{status}")
end

def status_options STATUS_VALUES.map { |status| [status_text(status), status] } end

end
end

使用したテキストおよび該当するページ:インプレス出版 改訂4版 基礎 Ruby On Rails 370P

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

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

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

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

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

guest

回答1

0

ベストアンサー

SQLについて調べるとよいでしょう。

?がプレースホルダ
<>!=と同じで非一致の演算子です

投稿2019/03/09 10:02

編集2019/03/09 10:04
asm

総合スコア15147

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

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

masa9216

2019/03/09 10:05

ありがとうございます!助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問