質問編集履歴

1

一部記載箇所が抜けていた為、修正しました。

2018/08/02 20:02

投稿

izumo_higurashi
izumo_higurashi

スコア9

test CHANGED
File without changes
test CHANGED
@@ -4,13 +4,23 @@
4
4
 
5
5
  railsでのアプリケーション制作をしています。
6
6
 
7
+
8
+
9
+ ネットの情報を調べscaffoldを使って制作し、あっさり実装することが出来ましたが
10
+
11
+ 自身で制作中のアプリはscaffoldを使っていません。
12
+
13
+ 下記内容です。
14
+
15
+
16
+
7
17
  投稿記事一覧ページに
8
18
 
9
- <検索機能>を実装したいです
19
+ <検索機能>を実装したい。
10
-
11
-
12
-
20
+
21
+
22
+
13
- カラム名title カラム名opinion
23
+ モデル blos カラム名title
14
24
 
15
25
  内にあるものを検索した後、
16
26
 
@@ -18,16 +28,6 @@
18
28
 
19
29
 
20
30
 
21
- http://freesworder.net/rails-search/
22
-
23
- 上記のURLを参考にしましたが、解決できずでした。
24
-
25
-
26
-
27
- ご教授下さい。
28
-
29
-
30
-
31
31
  ### 発生している問題・エラーメッセージ
32
32
 
33
33
 
@@ -44,6 +44,8 @@
44
44
 
45
45
  ```ここに言語を入力
46
46
 
47
+ ```ここに言語を入力
48
+
47
49
  class BlogsController < ApplicationController
48
50
 
49
51
 
@@ -54,11 +56,67 @@
54
56
 
55
57
  @blog = Blog.new
56
58
 
57
-
58
-
59
- @Blogs = Blog.search(params[:search])
59
+ @blogs = Blog.search(params[:search])
60
+
60
-
61
+ end
62
+
63
+
64
+
61
-
65
+ def show
66
+
67
+ @blog = Blog.find(params[:id])
68
+
69
+ end
70
+
71
+
72
+
73
+ def new
74
+
75
+ @blog = Blog.new
76
+
77
+ end
78
+
79
+
80
+
81
+ def create
82
+
83
+ blog = Blog.new(blog_params)
84
+
85
+ blog.save
86
+
87
+ redirect_to blog_path(blog.id)
88
+
89
+ end
90
+
91
+
92
+
93
+ def edit
94
+
95
+ @blog = Blog.find(params[:id])
96
+
97
+ end
98
+
99
+
100
+
101
+ def update
102
+
103
+ blog = Blog.find(params[:id])
104
+
105
+ blog.update(blog_params)
106
+
107
+ redirect_to blog_path(blog.id)
108
+
109
+ end
110
+
111
+
112
+
113
+ def destroy
114
+
115
+ blog = Blog.find(params[:id])
116
+
117
+ blog.destroy
118
+
119
+ redirect_to blogs_path
62
120
 
63
121
  end
64
122
 
@@ -76,34 +134,160 @@
76
134
 
77
135
  end
78
136
 
137
+
138
+
139
+
140
+
79
141
  ```
80
142
 
81
-
82
-
83
143
  <ビュー>
84
144
 
85
145
  ```ここに言語を入力
86
146
 
87
- <%= form_tag blogs_path, :method => 'get' do %> <%# 
88
-
89
- <p>
90
-
91
- <%= text_field_tag :search, params[:search] %>
147
+ <h1>books</h1>
92
-
148
+
149
+
150
+
93
- <%= submit_tag "Search", :title => nil %>
151
+ <%= form_tag("/blogs",method:"get") do %>
94
-
152
+
95
- </p>
153
+ <input type="text" title="search">
154
+
155
+ <input type="submit" value="search">
96
156
 
97
157
  <% end %>
98
158
 
99
159
 
100
160
 
161
+
162
+
163
+ <table>
164
+
165
+ <thead>
166
+
167
+ <tr>
168
+
169
+ <th>title</th>
170
+
171
+ <th>opinion</th>
172
+
173
+ <th>image</th>
174
+
175
+ </tr>
176
+
177
+ </thead>
178
+
179
+ <tbody>
180
+
181
+ <% @blogs.each do |blog| %>
182
+
183
+ <tr>
184
+
185
+ <td>
186
+
187
+ <%= blog.title %>
188
+
189
+ </td>
190
+
191
+ <td>
192
+
193
+ <%= blog.opinion %>
194
+
195
+ </td>
196
+
197
+ <td>
198
+
199
+ <%= attachment_image_tag blog, :image, :fill, 30, 30, format: 'jpeg' %>
200
+
201
+ <td>
202
+
203
+ <%= link_to "show", blog_path(blog.id) %>
204
+
205
+ <%= link_to "edit", edit_blog_path(blog.id) %>
206
+
207
+
208
+
209
+ <%= link_to "destroy", blog_path(blog.id), method: :delete %>
210
+
211
+
212
+
213
+ </td>
214
+
215
+ </tr>
216
+
217
+ </tbody>
218
+
219
+ <% end %>
220
+
221
+ </table>
222
+
223
+
224
+
225
+
226
+
227
+ <h2>new book</h2>
228
+
229
+
230
+
231
+ <%= form_for(@blog) do |f| %>
232
+
233
+
234
+
235
+ <h4>title</h4>
236
+
237
+ <%= f.text_field :title %>
238
+
239
+
240
+
241
+ <h4>opinion</h4>
242
+
243
+ <%= f.text_field :opinion %>
244
+
245
+
246
+
247
+ <h4>image</h4>
248
+
249
+ <%= f.attachment_field :image %>
250
+
251
+
252
+
253
+ <br>
254
+
255
+
256
+
257
+ <%= f.submit 'create' %>
258
+
259
+
260
+
261
+ <% end %>
262
+
263
+
264
+
265
+
266
+
267
+ <footer>
268
+
269
+
270
+
271
+ <h3></h3>
272
+
273
+
274
+
275
+ </footer>
276
+
277
+
278
+
101
279
  ```
102
280
 
281
+
282
+
283
+
284
+
103
285
  <モデル>
104
286
 
105
287
  ```ここに言語を入力
106
288
 
289
+ ```ここに言語を入力
290
+
107
291
  class Blog < ApplicationRecord
108
292
 
109
293
 
@@ -112,15 +296,15 @@
112
296
 
113
297
 
114
298
 
115
- def self.search(search)
299
+ def self.search(search)
116
300
 
117
301
  if search
118
302
 
119
- Blog.where(['title LIKE ?', "%#{search}%"])
303
+ Blog.where(Blog.arel_table[:title].matches("%#{search}%"))
120
304
 
121
305
  else
122
306
 
123
- Blog.all
307
+ Blog.all
124
308
 
125
309
  end
126
310
 
@@ -130,8 +314,12 @@
130
314
 
131
315
  end
132
316
 
317
+
318
+
133
319
  ```
134
320
 
321
+ ```
322
+
135
323
 
136
324
 
137
325
  初めての質問で言葉足らずで申し訳ありません。