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

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

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

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

Ruby

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

Ruby on Rails

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

HTML

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

Q&A

解決済

1回答

647閲覧

railsでコメント機能を追加したい

yamada_yuuki

総合スコア100

Ruby on Rails 5

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

Ruby

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

Ruby on Rails

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

HTML

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

0グッド

0クリップ

投稿2019/11/14 08:49

編集2019/11/14 12:39

railsでコメント欄を作成したのですが、うまくいきません。エラーは出ないですが投稿をしてもうまく表示できません。気がついたことがありましたら、教えて下さい。お願いします。

controller

1class UgblogsController < ApplicationController 2 layout 'ugblogs' 3 before_action :set_ugblog, only: [:show, :edit, :update, :destroy] 4 # GET /ugblogs 5 # GET /ugblogs.json 6 def index 7 @user = current_user 8 @ugblogs = Ugblog.all.order('created_at desc').limit(10) 9 end 10 11 def sign 12 end 13 14 def find 15 @user = current_user 16 @ugblog = Ugblog.all.order('created_at desc').limit(10) 17 @ugblog = Array.new 18 if request.post? then 19 @ugblog = Ugblog.where "title like ?", 20 '%' + params[:find] + '%' 21 end 22 end 23 24 # GET /ugblogs/1 25 # GET /ugblogs/1.json 26 def show 27 @user = current_user 28 @kome = Ugsama.new 29 30 31 @msg = params[:kome] 32 end 33 34 # GET /ugblogs/new 35 def new 36 @ugblog = Ugblog.new 37 end 38 39 # GET /ugblogs/1/edit 40 def edit 41 end 42 43 44 # POST /ugblogs 45 # POST /ugblogs.json 46 def create 47 @ugblog = Ugblog.new(ugblog_params) 48 49 respond_to do |format| 50 if @ugblog.save 51 format.html { redirect_to @ugblog, notice: 'Ugblog was successfully created.' } 52 format.json { render :show, status: :created, location: @ugblog } 53 else 54 format.html { render :new } 55 format.json { render json: @ugblog.errors, status: :unprocessable_entity } 56 end 57 end 58 end 59 60 # PATCH/PUT /ugblogs/1 61 # PATCH/PUT /ugblogs/1.json 62 def update 63 respond_to do |format| 64 if @ugblog.update(ugblog_params) 65 format.html { redirect_to @ugblog, notice: 'Ugblog was successfully updated.' } 66 format.json { render :show, status: :ok, location: @ugblog } 67 else 68 format.html { render :edit } 69 format.json { render json: @ugblog.errors, status: :unprocessable_entity } 70 end 71 end 72 end 73 74 # DELETE /ugblogs/1 75 # DELETE /ugblogs/1.json 76 def destroy 77 @ugblog.destroy 78 respond_to do |format| 79 format.html { redirect_to ugblogs_url, notice: 'Ugblog was successfully destroyed.' } 80 format.json { head :no_content } 81 end 82 end 83 84 private 85 # Use callbacks to share common setup or constraints between actions. 86 def set_ugblog 87 @ugblog = Ugblog.find(params[:id]) 88 end 89 90 # Never trust parameters from the scary internet, only allow the white list through. 91 def ugblog_params 92 params.require(:ugblog).permit(:title, :subtitle, :Text, :img, :img_cache, :remove_img, :kome) 93 end 94end

show

1<div> 2<p id="notice"><%= notice %></p> 3<h2><%= @user.name %>さんの投稿</h2> 4<p> 5 <strong>タイトル:</strong> 6 <%= @ugblog.title %> 7</p> 8 9<p> 10 <strong>サブタイトル:</strong> 11 <%= @ugblog.subtitle %> 12</p> 13 14<p> 15 <strong>本文:</strong> 16 <%= @ugblog.Text %> 17</p> 18<p> 19<%= image_tag @ugblog.img.url, :size => '330x330' %> 20</p> 21<%= link_to '修正', edit_ugblog_path(@ugblog) %> | 22<%= link_to 'トップページへ', ugblogs_path %> 23 24 <%= form_for(@kome, url:{controller:'ugblogs', action:'show'}) do |form| %> 25 <tr><th>コメント</th> 26 <td><%= form.text_field :kome %></td></tr> 27 <tr><th></th> 28 <td><%= form.submit "送信" %></td></tr> 29 </tr> 30 <% end %> 31<p><%= @msg %></p> 32</div>

ugsamarb

1class Ugsama < ApplicationRecord 2 belongs_to :ugblog 3 4 validates :kome, presence: { message: 'は、必須項目です。' } 5end 6

ugblogrb

1class Ugblog < ApplicationRecord 2 has_many :ugsama 3 mount_uploader :img, ImgUploader 4 5 validates :title, :subtitle, :Text, :img, presence: {message:'は、必須事項です。'} 6 def self.search(search) 7 return Ugblog.all unless search 8 Ugblog.where(['content LIKE ?', "%#{search}%"]) 9 end 10end

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

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

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

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

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

guest

回答1

0

ベストアンサー

<%= form_for(@kome, url:{controller:'ugblogs', action:'show'}) do |form| %>とあります。

  1. 投稿内容を showで受けるようになっていますが、showにはその処理が書かれていません。ここは普通はcreateで受けるところではないかと思います。

が、
そこはUgsamaではなく、Ugblogのcreateですね。。。
Ugsamaのcreateに飛ばせて、そこから Ugblogのshowにもどるのかな。

routes.rb に resources :ugsama すると postのための
ugsama_pathができますから、それに(ugblog_id: @udblog) も渡して。

投稿2019/11/15 00:19

winterboum

総合スコア23329

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問