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

質問編集履歴

2

試してみたことを書いてみました

2021/04/05 09:20

投稿

kawasaki4563
kawasaki4563

スコア32

title CHANGED
File without changes
body CHANGED
@@ -33,8 +33,21 @@
33
33
  といったふうに、movie_typeメソッドの2つ目のif文の内容を
34
34
  `if !movie.content_type.in?(%('movie/mp4 movie/mov'))`
35
35
  に変えてみたのですが、これをした結果、MP4の動画を投稿しようとしても投稿にそもそも失敗してしまう様になりました。
36
- 投稿が保存されません
36
+ 投稿が保存されません
37
+ 試しにmovie.rbの
38
+ ```
39
+ validate :movie_presence
37
40
 
41
+ def movie_type
42
+ if movie.attached?
43
+ if !movie.content_type.in?(%('movie/mp4 movie/mov'))
44
+ errors.add(:movie, 'にはmp4またはmovファイルを添付してください')
45
+ end
46
+ end
47
+ end
48
+ ```
49
+ の記述を消してみたところ、投稿はできました。なので、パラメーターには情報が来ているようでした。
50
+
38
51
  動画投稿に関するmodel
39
52
 
40
53
  movie.rb

1

試してみたことの修正

2021/04/05 09:20

投稿

kawasaki4563
kawasaki4563

スコア32

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,40 @@
1
1
  Active storageにバリデーションをかけて動画しか投稿できないようにしたいのですが、動画以外も投稿できてしまいます。
2
2
 
3
+ やってみたこととしては、movie.rb
4
+ ```
5
+ class Movie < ApplicationRecord
6
+ has_one_attached :movie
7
+ has_many :movie_liked_users, through: :movie_likes, source: :user
8
+ has_many :movie_likes
9
+ has_many :movie_comments, dependent: :destroy
10
+ belongs_to :user
11
+ has_many :movie_likes
12
+
13
+ with_options presence: true do
14
+ validates :title
15
+ validates :introduction
16
+ validates :movie
17
+ end
18
+
19
+ validate :movie_type
20
+
21
+ def movie_type
22
+ if movie.attached?
23
+ if !movie.content_type.in?(%('movie/mp4 movie/mov'))
24
+ errors.add(:movie, 'にはmp4またはmovファイルを添付してください')
25
+ end
26
+ end
27
+ end
28
+
29
+
30
+ end
31
+ ```
32
+
33
+ といったふうに、movie_typeメソッドの2つ目のif文の内容を
34
+ `if !movie.content_type.in?(%('movie/mp4 movie/mov'))`
35
+ に変えてみたのですが、これをした結果、MP4の動画を投稿しようとしても投稿にそもそも失敗してしまう様になりました。
36
+ 投稿が保存されません
37
+
3
38
  動画投稿に関するmodel
4
39
 
5
40
  movie.rb