質問編集履歴
3
自分で調べたことや試したことに関しての文を修正しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -121,13 +121,13 @@
|
|
121
121
|
|
122
122
|
|
123
123
|
**自分で調べたことや試したこと**
|
124
|
-
3つの
|
124
|
+
記事を3つ読んでそれぞれの解決策を試みましたが、いずれも解決に至りませんでした。
|
125
125
|
1つ目: ルーティングをresource→resourcesに書き直す
|
126
|
-
→書き直したが上記のエラーメッセージが変わらず表示されました。
|
126
|
+
→書き直しましたが上記のエラーメッセージが変わらず表示されました。
|
127
127
|
https://qiita.com/kaichi_lvg/items/c5b8d594929ed8047966#%E6%8C%99%E5%8B%95%E7%A2%BA%E8%AA%8D
|
128
128
|
|
129
129
|
2つ目: Item.find(params[:id])→Item.find(params[:item_id]) に修正
|
130
|
-
→書き直したが上記のエラーメッセージが変わらず表示されました。
|
130
|
+
→書き直しましたが上記のエラーメッセージが変わらず表示されました。
|
131
131
|
https://qiita.com/WI2rz/items/ae291c52af78ad0467f8
|
132
132
|
|
133
133
|
解決策3:findではなくfind_by メソッドで書く
|
2
routes.rbを追記しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -95,6 +95,31 @@
|
|
95
95
|
end
|
96
96
|
```
|
97
97
|
|
98
|
+
```routes.rb
|
99
|
+
Rails.application.routes.draw do
|
100
|
+
get 'relationships/followings'
|
101
|
+
get 'relationships/followers'
|
102
|
+
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
|
103
|
+
get 'home/top'
|
104
|
+
devise_for :users
|
105
|
+
root to: "home#top"
|
106
|
+
get 'home/mypage'
|
107
|
+
get 'home/show/:id', :to => 'home#show'
|
108
|
+
resources :posts do #postsコントローラへのルーティング
|
109
|
+
resources :comments, only: [:create] #commentsコントローラへのルーティング
|
110
|
+
resource :likes, only: [:create, :destroy]
|
111
|
+
resource :bookmarks, only: [:create, :destroy]
|
112
|
+
end
|
113
|
+
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
|
114
|
+
resources :users do
|
115
|
+
resources :relationships, only: [:create, :destroy]
|
116
|
+
get 'followings' => 'relationships#followings', as: 'followings'
|
117
|
+
get 'followers' => 'relationships#followers', as: 'followers'
|
118
|
+
end
|
119
|
+
end
|
120
|
+
```
|
121
|
+
|
122
|
+
|
98
123
|
**自分で調べたことや試したこと**
|
99
124
|
3つの記事にあった解決策を試みましたが、いずれも解決に至りませんでした。
|
100
125
|
1つ目: ルーティングをresource→resourcesに書き直す
|
1
userモデルを追記しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -58,6 +58,43 @@
|
|
58
58
|
エラー原因: @user = User.find(params[:user_id])
|
59
59
|
|
60
60
|
```
|
61
|
+
|
62
|
+
```user.rb
|
63
|
+
class User < ApplicationRecord
|
64
|
+
# Include default devise modules. Others available are:
|
65
|
+
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
|
66
|
+
|
67
|
+
|
68
|
+
devise :database_authenticatable, :registerable,
|
69
|
+
:recoverable, :rememberable, :validatable
|
70
|
+
has_many :posts, dependent: :destroy
|
71
|
+
has_many :comments
|
72
|
+
has_many :likes, dependent: :destroy
|
73
|
+
has_many :bookmarks, dependent: :destroy
|
74
|
+
|
75
|
+
# フォローをした、されたの関係
|
76
|
+
has_many :relationships, class_name: "Relationship", foreign_key: "follower_id", dependent: :destroy
|
77
|
+
has_many :reverse_of_relationships, class_name: "Relationship", foreign_key: "followed_id", dependent: :destroy
|
78
|
+
|
79
|
+
# 一覧画面で使う
|
80
|
+
has_many :followings, through: :relationships, source: :followed
|
81
|
+
has_many :followers, through: :reverse_of_relationships, source: :follower
|
82
|
+
|
83
|
+
# フォローしたときの処理
|
84
|
+
def follow(user_id)
|
85
|
+
relationships.create(followed_id: user_id)
|
86
|
+
end
|
87
|
+
# フォローを外すときの処理
|
88
|
+
def unfollow(user_id)
|
89
|
+
relationships.find_by(followed_id: user_id).destroy
|
90
|
+
end
|
91
|
+
# フォローしているか判定
|
92
|
+
def following?(user)
|
93
|
+
followings.include?(user)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
```
|
97
|
+
|
61
98
|
**自分で調べたことや試したこと**
|
62
99
|
3つの記事にあった解決策を試みましたが、いずれも解決に至りませんでした。
|
63
100
|
1つ目: ルーティングをresource→resourcesに書き直す
|