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

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

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

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

Q&A

0回答

220閲覧

remote :trueが効かない

Inu1011

総合スコア7

Ruby on Rails 6

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

0グッド

0クリップ

投稿2020/12/28 04:14

編集2020/12/28 04:59

PostメソッドのFormatが「html」となっており、jsで渡っていないのが原因かと思っているんですが、
ページの検証をするとどのform_withにはデフォルトにあるremote :trueが機能していませんでした
何が原因でしょうか?

Instagram風アプリを作っていまして、

<div id="comment-post-<%= post.id.to_s %>"> <%= render 'comment_list', { post: post } %> </div> <%= link_to time_ago_in_words(post.created_at).upcase + "前", post_path(post), class: "light-color post-time no-text-decoration" %> <hr> <div class="row actions" id="comment-form-post-<%= post.id.to_s %>"> <%= form_with model: [post, Comment.new], class: "w-100" do |f| %> <%= f.hidden_field :user_id, value: current_user.id %> <%= f.hidden_field :post_id, value: post.id %> <%= f.text_field :comment, class: "form-control comment-input border-0", placeholder: "コメント ...", autocomplete: :off %> <% end %> </div> </div> </div> </div> </div> </div> <% end %> ここでコメントを作り送信すると、 ActionController::UnknownFormat in CommentsController#create ActionController::UnknownFormat Extracted source (around line #7): 5 6 7 8 9 10
@post = @comment.post if @comment.save respond_to :js else flash[:alert] = "コメントに失敗しました" end

Rails.root: /myapp

Application Trace | Framework Trace | Full Trace
app/controllers/comments_controller.rb:7:in `create'
Request
Parameters:

{"authenticity_token"=>"[FILTERED]", "comment"=>{"user_id"=>"1", "post_id"=>"6", "comment"=>"こんにちは"}, "post_id"=>"6"}
Toggle session dump
Toggle env dump
Response
Headers:

None
このようなエラーがおこりました。
コントローラーはこのようになります
class CommentsController < ApplicationController
before_action :authenticate_user!
def create
@comment = Comment.new(comment_params)
@post = @comment.post
if @comment.save
respond_to :js
else
flash[:alert] = "コメントに失敗しました"
end
end

def destroy
@comment = Comment.find_by(id: params[:id])
@post = @comment.post
if @comment.destroy
respond_to :js
else
flash[:alert] = "コメントの削除に失敗しました"
end
end

private
def comment_params
params.required(:comment).permit(:user_id, :post_id, :comment)

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

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

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

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

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

m.ts10806

2020/12/28 04:17 編集

どのようにコード組まれたのかなにも提示されてないので、なんとも。 起きてる現象(エラーとか)すら提示されてないし、 「何を作りたいのか」「どういう風に動かしたいのか」要件も8割以上省略されているように見受けられます。 きちんと赤の他人に要件伝わるように追記してください。
Inu1011

2020/12/28 04:59

すみません、よろしくお願いします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問