学習RoR(4)
「scaffold の呪縛」だったのかな、とようやく理解。
先の理解はちょっと間違い。controller の名前はどんなものでも構わない(当たり前といえば当たり前の話)。問題はアクションへの記述であるとか、モデルへの記述であるとか。それによってビューでの書き方に違いがあったりとか。
たぶんにこれは当初便利だからと多用した scaffold の影響で、自分のなかに間違った刷り込みが出来てしまったのが原因だったのかも。
scaffold を使うととりあえず list show new edit delete といった処理が作られるので、てっとり早く動作させてみることができて便利。で、このときの手順で、
script\generate scaffold モデル名 [ コントローラ名 ]
と入力すると。モデル名はテーブル名の単数形を指定し、コントローラ名は省略するとモデル名と同じになると。
で、面倒なので通常はコントローラ名は省略してしまう。故に、コントローラ名とモデル名、テーブル名が常に同一である必要があるような錯覚をしていたような気がする。(ついでにアクション内で書かれるオブジェクトについてすらも<そんなバカな、である)
けれども実際はそんなことはないわけで、特に複数のテーブルを関係付けて処理するならば、そのときのアクションとかによって必要なオブジェクトについて記述すればよいだけであると。
思い込みとは怖いものであると。
というわけで、それがわかってから試してみると、先のリレーションテーブルへのアクセスがきちんとできたし、希望していた処理も徐々にできる用になった。
| 固定リンク
コメント