回答編集履歴

1

「ルーティングで考える」を追記

2018/01/20 11:59

投稿

scivola
scivola

スコア2108

test CHANGED
@@ -83,3 +83,109 @@
83
83
 
84
84
 
85
85
  ツイッターやインスタグラムと同じものが一人で作れたらあなたはスーパープログラマーですよ!
86
+
87
+
88
+
89
+ (追記)
90
+
91
+
92
+
93
+ 「ルーティングで考える」の例を挙げます。`routes.rb` を考える,と言い換えてもいいですね。
94
+
95
+
96
+
97
+ たとえば書籍の情報を扱うんだったら,
98
+
99
+
100
+
101
+ ```rb
102
+
103
+ resources :books
104
+
105
+ ```
106
+
107
+
108
+
109
+ ですよね。
110
+
111
+ でも一般ユーザーと管理者とで操作体系を分けるんだったら
112
+
113
+
114
+
115
+ ```rb
116
+
117
+ resources :books
118
+
119
+
120
+
121
+ namespace :admin
122
+
123
+ resources :books
124
+
125
+ end
126
+
127
+ ```
128
+
129
+
130
+
131
+ かな,とか。(この場合,`BooksController` と `Admin::BooksController` のようにコントローラーも別になります)
132
+
133
+ おっとまて,一般ユーザーは閲覧だけができることにしよう。じゃあ
134
+
135
+
136
+
137
+ ```rb
138
+
139
+ resources :books, only: %i[index show]
140
+
141
+
142
+
143
+ namespace :admin
144
+
145
+ resources :books
146
+
147
+ end
148
+
149
+ ```
150
+
151
+
152
+
153
+ だな。
154
+
155
+ ええと,表紙画像を `books/123/cover_image` みたいな URL で見せたい(これは `books/123` のビューから利用します)ので
156
+
157
+
158
+
159
+ ```rb
160
+
161
+ resources :books, only: %i[index show] do
162
+
163
+ member do
164
+
165
+ get :cover_image
166
+
167
+ end
168
+
169
+ end
170
+
171
+
172
+
173
+ namespace :admin
174
+
175
+ resources :books
176
+
177
+ end
178
+
179
+ ```
180
+
181
+
182
+
183
+ にするか。
184
+
185
+
186
+
187
+ てな感じで考えていくんです。
188
+
189
+
190
+
191
+ なお,私は達人ではないので,こういう持っていき方がベストかどうか分かりませんが。