#前提
現在Ruby on rails Tutorialを学習中の初学者です。
MVCの項番にて不明な点があったため、こちらにて質問させていただきます。
#MVCの挙動
MVCの考え方は以下の三点にて行われていると認識しております。
- Model : DBからのデータの参照や書き込み、サーバー側との処理を行う
- View : ユーザーの目に見える部分 入力や出力を行う
- Controller : ModelとViewの橋渡し
また、Rails Tutrialにて記載されていたMVCの挙動は以下の通りです。
#不明点
DBからのデータの受け渡しのコードを以下に記載します。
ruby
1# 全て抜粋 /models/user.rb 2class User < ApplicationiRecord 3end
ruby
1<!-- データ使用部のみ抜粋 /views/users/index.html.erb --> 2 3<table> 4 <thead> 5 <tr> 6 <th>Name</th> 7 <th>Email</th> 8 <th colspan="3"></th> 9 </tr> 10 </thead> 11 12 <tbody> 13 <% @users.each do |user| %> 14 <tr> 15 <td><%= user.name %></td> 16 <td><%= user.email %></td> 17 <td><%= link_to 'Show', user %></td> 18 <td><%= link_to 'Edit', edit_user_path(user) %></td> 19 <td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td> 20 </tr> 21 <% end %> 22 </tbody> 23</table>
ruby
1# index部のみ抜粋 /controllers/users_controller.rb 2 3class UsersCOntroller < ApplicationController 4 before_action :set_user, only: [:show, :edit, :update, :destroy] 5 6 # GET /users 7 # GET /users.json 8 def index 9 @users = User.all 10 end 11 12 # ... 13end
上記のMVCそれぞれのフォルダ内にある3つのファイルを参照して、違和感を覚えました。
Rails Tutrialの画像を見る限りですと、
PlaneText
1[Browser] > [Router] > [Controller] > [Model] > [DB] > [Model] > [Controller] > [View] > [Controller] > [Browser]
だったのですが、このコードを見ている限りだとModelには何も処理が書かれておらず、Controllerから直接DBの中身を取得しにいっているように見えます。
これではMVCの観点から見てRuby on railsの設計が間違っていると思うのですが、どうなのでしょうか。
拙い文章にて申し訳ありません。
以上、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/10/04 06:23