質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

736閲覧

rails コメント機能の追加に関して

Kousukeh10969

総合スコア20

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/03/27 01:01

railsで写真のように画像投稿詳細ページ(Post_images)に付随するようにコメント機能(Post_comments)を付けたのですが、post_comments_controller.rb上のコードのcreateアクションの部分がいまいち理解できていないので、そこの部分のコードの詳しい説明をしていただきたいです。また、おそらく変数とメソッドが理解できていない故だと思うので、併せて説明していただきたいです。よろしくお願い致します。

rails

1class PostCommentsController < ApplicationController 2 def create 3 post_image = PostImage.find(params[:post_image_id]) 4 comment = current_user.post_comments.new(post_comment_params) 5 comment.post_image_id = post_image.id 6 comment.save 7 redirect_to post_image_path(post_image) 8 end 9 # データを保存する処理を行う 10 # newアクションはあくまで投稿フォーム画面を表示するだけで、投稿フォーム自体はform_forでOK 11 12 13 private 14 def post_comment_params 15 params.require(:post_comment).permit(:user_id,:post_image_id, :comment) 16end 17end 18

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

コメントで説明を入れさせてもらいました。

ruby

1 def create 2 # パラメータで指定された投稿画像を検索して、変数「post_image」へ格納する 3 post_image = PostImage.find(params[:post_image_id]) 4 5 # 新しいコメントを生成して、変数「comment」へ格納する 6 comment = current_user.post_comments.new(post_comment_params) 7 8 # 先ほど生成したコメントの投稿画像IDにパラメータで渡された投稿画像IDを設定する 9 comment.post_image_id = post_image.id 10 11 # 先ほど生成したコメントをDBに保存する 12 comment.save 13 14 # 投稿画像のページへリダイレクトする 15 redirect_to post_image_path(post_image) 16 end

おそらく変数とメソッドが理解できていない故だと思うので、

それが理解できていないと、まともにプログラムが書けないと思うので、入門者向けの書籍や学習サイトで Ruby の基礎から学び直すことをおすすめします。

初心者向けの学習サイトとして、Progateドットインストールはおすすめです。

投稿2019/03/27 01:54

編集2019/03/27 02:35
nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kousukeh10969

2019/03/27 02:26

分かりやすい回答ありがとうございます。回答者さんが言う通り、そこを理解するのに苦労しています。もし、宜しければ、そこの部分を分かりやすく解説しているサイトなど知っていたら教えていただきたいです。
nskydiving

2019/03/27 02:36

回答欄に追記しましたので、ご確認ください。
guest

0

ベストアンサー

なんで理解できてないコードが書けるのか...というツッコミは置いておくとして
関連しそうなドキュメントのリンクを貼っておきます。

ruby

1post_image = PostImage.find(params[:post_image_id])

ruby

1comment = current_user.post_comments.new(post_comment_params)

ruby

1comment.post_image_id = post_image.id

ruby

1comment.save

ruby

1redirect_to post_image_path(post_image)

投稿2019/03/27 01:52

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kousukeh10969

2019/03/27 02:29

回答ありがとうございます。 comment.post_image_id = post_image.id の紐づけの部分を理解するのに苦労しています。 もし宜しければ、ここに関して分かりやすく解説してあるサイトや動画がありましたら教えていただきたいです。よろしくお願いいたします
退会済みユーザー

退会済みユーザー

2019/03/27 02:52 編集

comment変数にpost_commentsレコードが格納されています。 その変数の:post_image_idにpost_image.idの値を代入しています。 これをさらにわかりやすく解説しているサイトを見つけるのは逆に難しいですね...。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問