質問編集履歴

1

追記するため

2019/07/26 02:21

投稿

widget11
widget11

スコア221

test CHANGED
File without changes
test CHANGED
@@ -60,7 +60,7 @@
60
60
 
61
61
  ここで質問なのですが
62
62
 
63
- hogeというHogeクラスに記載されてうryインスタンスメソッドを使いたい際は、
63
+ hogeというHogeクラスに記載されているインスタンスメソッドを使いたい際は、
64
64
 
65
65
  ```
66
66
 
@@ -111,3 +111,85 @@
111
111
 
112
112
 
113
113
  長くなってしまいましたがよろしくお願いいたします。
114
+
115
+
116
+
117
+
118
+
119
+ ---
120
+
121
+ # 追記
122
+
123
+ MVCにおいてはビジネスロジックはモデルに書いてモデルを太らせるのが鉄則といいますが、
124
+
125
+ 以下のようにのようにモデルクラスに複数メソッドを書き、where句等で同じ変数を用いたい際にコンストラクタがあるとインスタンスメソッドを呼び出す際に書き方がスッキリして便利だと思うのですが、モデルクラスでコンストラクタを使いたい際はどのようにするのがベストなのでしょうか。
126
+
127
+ ```ここに言語を入力
128
+
129
+ #コンストラクタあり
130
+
131
+ class Hoge < ApplicationRecord
132
+
133
+  
134
+
135
+ def initialize(id)
136
+
137
+   @id = id
138
+
139
+ end
140
+
141
+
142
+
143
+ def hoge
144
+
145
+ Hoge.where(id: @id)
146
+
147
+ end
148
+
149
+
150
+
151
+  def hoges
152
+
153
+ Hoge.includes(:bar).where(id: @id)
154
+
155
+  end
156
+
157
+
158
+
159
+ end
160
+
161
+
162
+
163
+ #コンストラクタなし
164
+
165
+
166
+
167
+ class Hoge < ApplicationRecord
168
+
169
+
170
+
171
+ def hoge(id)
172
+
173
+ Hoge.where(id: id)
174
+
175
+ end
176
+
177
+
178
+
179
+  def hoges(id)
180
+
181
+ Hoge.includes(:bar).where(id: id)
182
+
183
+  end
184
+
185
+
186
+
187
+ end
188
+
189
+ ```
190
+
191
+
192
+
193
+
194
+
195
+ それともそもそもrailsのモデルクラスの場合はPOCOではないのでロジックをあまり書くべきではないのでしょうか?