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

質問編集履歴

3

名称変更

2020/06/16 09:50

投稿

Ponimaru
Ponimaru

スコア6

title CHANGED
File without changes
body CHANGED
@@ -4,12 +4,12 @@
4
4
 
5
5
  ### わからないこと
6
6
 
7
- 一覧ページにおけるpost_idの取得の仕方
7
+ 一覧ページにおけるreview_idの取得の仕方
8
8
 
9
9
  一覧ページの投稿に対していいねをする時、その投稿のidを含めてデータに保存する方法
10
10
 
11
11
  ルーティングにおけるコードの書き方 ー
12
- like と post がルーティングで独立してるのは気がついているのですが、
12
+ like と review がルーティングで独立してるのは気がついているのですが、
13
13
  できれば resources を使いたいと考えています。
14
14
  それが不可ならuriパターンでの指定を教えていただけると幸いです。
15
15
  ### 該当のソースコード

2

review controller の追加

2020/06/16 09:50

投稿

Ponimaru
Ponimaru

スコア6

title CHANGED
File without changes
body CHANGED
@@ -30,6 +30,38 @@
30
30
  resources :likes, only: [:create, :destroy]
31
31
  end
32
32
  ```
33
+ ```ruby
34
+ class ReviewsController < ApplicationController
35
+ before_action :authenticate_user!
36
+ before_action :move_to_signin
37
+
38
+ def index
39
+ @reviews = Review.all
40
+ end
41
+
42
+ def new
43
+ @review = Review.new
44
+ end
45
+
46
+ def create
47
+ @review = Review.new(review_params)
48
+ if @review.save
49
+ redirect_to reviews_path
50
+ else
51
+ render :new
52
+ end
53
+ end
54
+
55
+ def show
56
+ @review = Review.find_by(id: params[:id])
57
+ end
58
+
59
+ private
60
+ def review_params
61
+ params.require(:review).permit(:title, :content, :image).merge(user_id: current_user.id)
62
+ end
63
+ end
64
+ ```
33
65
  ```haml
34
66
  -# index.html.haml
35
67
  %h1 Reviews#index

1

ファイルの省略無し

2020/06/16 09:25

投稿

Ponimaru
Ponimaru

スコア6

title CHANGED
File without changes
body CHANGED
@@ -13,23 +13,33 @@
13
13
  できれば resources を使いたいと考えています。
14
14
  それが不可ならuriパターンでの指定を教えていただけると幸いです。
15
15
  ### 該当のソースコード
16
- 関係のないところは省略します
17
16
  ```ruby
18
17
  class LikesController < ApplicationController
19
18
  def create
20
- @like = Like.new(user_id: current_user.id, post_id: id)
19
+ @like = Like.new(user_id: current_user.id, review_id: id)
21
20
  @like.save
21
+ redirect_to reviews_path
22
22
  end
23
23
  end
24
24
  ```
25
25
  ```ruby
26
26
  Rails.application.routes.draw do
27
+ root to: 'static_pages#home'
28
+ devise_for :users
27
- resources :posts, only: [:index, :new, :create, :show]
29
+ resources :reviews, only: [:index, :new, :create, :show]
28
30
  resources :likes, only: [:create, :destroy]
29
31
  end
30
32
  ```
31
33
  ```haml
34
+ -# index.html.haml
35
+ %h1 Reviews#index
36
+ - @reviews.each do |review|
37
+ .Cover
38
+ = link_to review_path(review) do
39
+ = image_tag "#{review.image}"
32
- = link_to('いいね', likes_path, method: :post)
40
+ = link_to('いいね', reviews_path, method: :post)
41
+ = link_to('review', new_review_path)
42
+ = link_to('logout', destroy_user_session_path, method: :delete)
33
43
  ```
34
44
 
35
45
  ### 試したこと