モデルについて
リソースベースのルーティングについて
resourcesメソッドでリソースを取得すると、コントローラのアクションを表すパスを
「リソース名 + _path」の形のメソッドで取得できるようになる。
例として、resources :persons(リソース名の複数形)とすることで、
indexアクション: persons_path
showアクション: person_path(person)
newアクション: new_person_path
editアクション: edit_person_path(person)
createアクション: persons_path
updateアクション: person_path(person)
destroyアクション: person_path(person)
これらのメソッドが使えるようになる。
個別のリソースを扱うアクションへのパスを得るためには、引数にモデルオブジェクトを渡す。
ちなみに、このようにも書くことが可能。
link_to @person.name + "の詳細", @person(showアクション)
link_to @person.name + "を削除", @person, method: :delete(destroyアクション)
逆に、idパラメータを取らないアクションでは「_path」の部分をとった文字列をシンボルにしたものが使える。
link_to "会員一覧", :persons
link_to "新規登録", :new_person
シンボルについて
シンボルとは、名前を表すオブジェクトのことである。
文字列を整数で表したものであり、文字列ではない。
- メソッド、変数の名前
- URLのパス
- ハッシュのキー
などで使われる。
シンボルの例として、
x = "abc"
y = "abc"
puts x == y # true
puts x.equal?(y) # false
これに対して
x2 = :abc
y2 = :abc
puts x2 == y2 # true
puts x2.equal?(y2) # true
==は文字列を比較しているのに対し、equal?はインスタンス(実体)を比較している。
また、ハッシュ(連想配列)とは、配列のようにオブジェクトをまとめるもの。
これも例として、
dog = {
name: "Pochi",
gender: "male",
age: 4
}
name, gender, age はキー、Pochi, male, 4 は値と呼ばれ、
ハッシュの要素は、キーと値のペアからなる。
シンボルとハッシュについてでした。