質問編集履歴
1
細かな部分の詳細を加えました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
-
投稿一覧ページにて、配置されている画像をタップすると、
|
1
|
+
投稿一覧ページにて、配置されているカテゴリ画像をタップすると、
|
2
|
-
その画像のカテゴリー
|
2
|
+
その画像のカテゴリーを保有する投稿のみ一覧で表示する方法を知りたいです。
|
3
3
|
|
4
|
+
現在post/index.htmlにて全てのポストが一覧できるような状況です。
|
5
|
+
各ポストはカテゴリー:idを保有しておりますが、ポスト一覧の上部分に、三つの画像を配置し、
|
6
|
+
その画像がタップされると、その画像が保有するcategory_idと、
|
7
|
+
同じcategory_idを保有するポストのみを一覧するということがしたく存じます。
|
4
8
|
|
5
9
|
```view
|
6
10
|
<img src= "/icon/movie.png" >
|
@@ -14,17 +18,46 @@
|
|
14
18
|
上記のようなリンクパスを与え、またそれに加えて:id値を与えて、
|
15
19
|
コントローラーに飛ばしてカテゴリ表示を考えています。
|
16
20
|
|
21
|
+
PostControllerには下記のような記載があります。
|
22
|
+
(今まではPost.allでしたが、nameで検索するサーチに機能もあるためこのようになっています。)
|
17
23
|
```Controller
|
18
24
|
def index
|
19
25
|
@posts = Post.search(params[:id]).order(created_at: :desc)
|
20
26
|
end
|
21
27
|
```
|
22
28
|
現状コントローラーはこのような状態ですが、取得はできていません。
|
23
|
-
Postとリレーションを持つCategoryモデルには
|
29
|
+
Postとリレーションを持つCategoryモデルには下記のようになっています。
|
24
30
|
```Model
|
31
|
+
class Category < ApplicationRecord
|
32
|
+
has_many :posts
|
33
|
+
end
|
34
|
+
|
35
|
+
class Post < ApplicationRecord
|
36
|
+
belongs_to :user
|
37
|
+
belongs_to :category
|
38
|
+
def user
|
39
|
+
return User.find_by(id: self.user_id)
|
40
|
+
end
|
41
|
+
def index
|
42
|
+
@posts = Project.search(param[:search])
|
43
|
+
end
|
44
|
+
def self.search(search)
|
45
|
+
if search
|
46
|
+
Post.where(['name LIKE ?', "%#{search}%"])
|
47
|
+
else
|
48
|
+
Post.all
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
```
|
53
|
+
View内にnameで検索するテキストサーチも入っているため、少々複雑になっています。
|
54
|
+
```DB
|
25
55
|
<Category id: 1, name: "movie", created_at:xx, updated_at:xx>
|
26
56
|
<Category id: 2, name: "drama", created_at:xx, updated_at:xx>
|
27
57
|
<Category id: 3, name: "anime", created_at:xx, updated_at:xx>
|
28
58
|
```
|
59
|
+
```DB
|
60
|
+
#<Post id: 1, title: "xx",, user_id: 1, category_id: 1 created_at: xx, updated_at: xx>
|
61
|
+
```
|
29
62
|
自分では現状このような状況です。
|
30
63
|
どのような方法でも宜しいので、ご教示頂ければ幸いです。
|