teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

細かな部分の詳細を加えました。

2018/11/16 06:49

投稿

tomtom1
tomtom1

スコア168

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
  どのような方法でも宜しいので、ご教示頂ければ幸いです。