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

質問編集履歴

4

new.htmlを記載しました。

2021/01/30 23:52

投稿

kanamaru
kanamaru

スコア1

title CHANGED
File without changes
body CHANGED
@@ -72,7 +72,9 @@
72
72
  get 'blogs/:id' => 'blogs#show'
73
73
  ```
74
74
 
75
+ ```
75
- ```new.html
76
+ new.html
77
+
76
78
  <%= form_tag('/blogs', method: :post) do %>
77
79
  <h3>
78
80
  投稿する

3

失礼しました。new.htmlの投稿フォームを追記しました。ご確認ねがいます。

2021/01/30 23:52

投稿

kanamaru
kanamaru

スコア1

title CHANGED
File without changes
body CHANGED
@@ -72,7 +72,21 @@
72
72
  get 'blogs/:id' => 'blogs#show'
73
73
  ```
74
74
 
75
+ ```new.html
76
+ <%= form_tag('/blogs', method: :post) do %>
77
+ <h3>
78
+ 投稿する
79
+ </h3>
80
+ <input type="text" name="title" placeholder="タイトル">
81
+ <textarea name="text" placeholder="text" rows="40" cols="100"></textarea>
82
+ <input type="submit" value="SEND">
83
+ <% end %>
84
+ </div>
85
+ ```
75
86
 
87
+
88
+
89
+
76
90
  ### 試したこと
77
91
 
78
92
  ネットで調べてみましたが、理解できず...具体的に教えていただけると助かります。

2

blogs_controllerに追記しました。ご確認のほどよろしくお願いいたします。

2021/01/30 23:51

投稿

kanamaru
kanamaru

スコア1

title CHANGED
File without changes
body CHANGED
@@ -36,6 +36,16 @@
36
36
  def create
37
37
  Blog.create(blog_title: blog_params[:blog_title], blog_text: blog_params[:blog_text], user_id: current_user.id)
38
38
  end
39
+ (中略)
40
+
41
+ def show
42
+ @blogs = Blog.find(params[:id])
43
+ end
44
+
45
+ private
46
+ def blog_params
47
+ params.permit(:blog_title, :blog_text)
48
+ end
39
49
  ```
40
50
 
41
51
  ```

1

大変失礼しました。何故かわかりませんが、文章が更新されていませんでした。質問の内容も若干変わっています。宜しくお願いいたします。

2021/01/30 23:47

投稿

kanamaru
kanamaru

スコア1

title CHANGED
File without changes
body CHANGED
@@ -1,34 +1,73 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- ・user_idは保存されてい
3
+ ・user_idは保存されています。
4
- ・web上ではエラー分はでない
5
- ・indexでは表示される(paramsを使用していない)
4
+ PHPMyAdminで入力すれば保存可能です。画面上(index.html、indexアクション)では表示されます。
6
-
7
5
 
8
- ここに質問の内容を詳しく書いてください。
9
- (例)PHP(CakePHP)で●●なシステムを作っています。
10
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
11
6
 
12
7
  ### 発生している問題・エラーメッセージ
13
8
 
14
9
  投稿画面で送信しても、入力したテキストが表示されません。
15
10
  PHPMyAdminを確認するとbulog_titleとblog_textはNullとなっていますが、user_idには数字がはいっています。
11
+ 画面上(index.html)では、投稿後に表示され、詳細、削除、編集のリンクが表示されます。
12
+ 詳細(show.html)をクリックするとエラー文がでます。
16
13
  paramsが上手く機能していなように感じます。
17
14
 
18
15
  ```
19
16
  エラーメッセージ
20
17
  ```
21
- エラー画面は出ません。
22
- ### 該当のソースコード
18
+ NoMethodError in Blogs#show
19
+ undefined method `blog_title' for nil:NilClass
23
20
 
24
- ```ここに言語名を入力
25
- ソースコード
21
+ 該当のコード
22
+ ```show.html
23
+ <%= @blogs.blog_title %>
24
+ <%= @blogs.blog_text %>
26
25
  ```
26
+ ### その他のソースコード
27
27
 
28
+ ```
29
+ blogs_controller
30
+
31
+ def index
32
+ @blogs=Blog.all.order("created_at DESC")
33
+ end
34
+ def new
35
+ end
36
+ def create
37
+ Blog.create(blog_title: blog_params[:blog_title], blog_text: blog_params[:blog_text], user_id: current_user.id)
38
+ end
39
+ ```
40
+
41
+ ```
42
+ index.html
43
+
44
+ <% @blogs.each do |blog| %>
45
+ <p><%= blog.blog_title %></p>
46
+ <ul class="more_list">
47
+ <li>
48
+ <%= link_to '詳細', "/blogs/#{blog.id}", method: :get %>
49
+ </li>
50
+ <% if user_signed_in? && current_user.id == blog.user_id %>
51
+ ```
52
+ ```
53
+ routes
54
+
55
+ root 'blogs#top'
56
+ get 'blogs' => 'blogs#index'
57
+ get 'blogs/new' => 'blogs#new'
58
+ post 'blogs' => 'blogs#create'
59
+ delete 'blogs/:id' => 'blogs#destroy'
60
+ get 'blogs/:id/edit' => 'blogs#edit'
61
+ patch 'blogs/:id' => 'blogs#update'
62
+ get 'blogs/:id' => 'blogs#show'
63
+ ```
64
+
65
+
28
66
  ### 試したこと
29
67
 
30
- ここに問題に対ししたことを記載しください。
68
+ ネットで調べみましたが、理解できず...具体的に教えていただけると助かります
31
69
 
70
+
32
71
  ### 補足情報(FW/ツールのバージョンなど)
33
72
 
34
- ここにより詳細な情報を記載してください。
73
+ バージョン:rails5.2