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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

422閲覧

createのSQLが発行されない。データを保存できない

nnnn5

総合スコア18

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2019/07/23 00:13

rails c ではデータを作成できるんですが、プログラム上でcreateのSQL文が発行されなくデータが保存できない状態にいます。
どこがいけないのかご指摘いただけると幸いです。
paramはちゃんと渡っているかと思われます。

SQL文 Started GET "/admin/posts/new?utf8=%E2%9C%93&authenticity_token=ml6gSUnqTKTuGQKPd9ZWFdDr8ODFm%2Bx2IuNwOcy%2Fpv%2BbpthhN0OxPRWD3YSGP6LeTSbPfYljLG09WtyO7dQWug%3D%3D&post%5Btitle%5D=fa&post%5Bcontent%5D=fa&post%5Bpost_date%5D=2019-07-17&commit=%E6%8A%95%E7%A8%BF" for ::1 at 2019-07-23 09:06:42 +0900 Processing by Admin::PostsController#new as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"ml6gSUnqTKTuGQKPd9ZWFdDr8ODFm+x2IuNwOcy/pv+bpthhN0OxPRWD3YSGP6LeTSbPfYljLG09WtyO7dQWug==", "post"=>{"title"=>"fa", "content"=>"fa", "post_date"=>"2019-07-17"}, "commit"=>"投稿"} Rendering admin/posts/new.html.erb within layouts/application Rendered admin/posts/_form.html.erb (2.9ms) Rendered admin/posts/new.html.erb within layouts/application (6.8ms) Completed 200 OK in 88ms (Views: 85.7ms | ActiveRecord: 0.0ms)
new.html.erb <%= form_with model: [:admin, @post], :url => { :action => 'create' }, local: true do |f| %> <div class="form-group"> <%= f.label :title, '投稿タイトル' ,:class => "label-s"%> <%= f.text_field :title, class: 'form-control' %> </div> <div class="form-group"> <%= f.label :content, '投稿内容' %> <%= f.text_area :content, class: 'form-control', rows:10 %> </div> <div class="form-group"> <div class="input-group date" id="datetimepicker1"> <%= f.label :post_date, '日付', for: "datetimepicker1", class: "pt-2 pr-2"%> <%= f.date_field :post_date, class: 'form-control' %> </div> </div> <%= f.submit '投稿', class: 'btn btn-info btn-block mt-5' %> <% end %>
route.rb namespace :admin do resources :posts end
posts_controller.rb class Admin::PostsController < ApplicationController before_action :set_post, :only => [:show, :edit, :update, :destroy] def index @posts = Post.all end def new @post = Post.new end def create @post = Post.new(post_params) binding.pry if @post.save redirect_to admin_posts_path, :notice => '記事を登録しました。' else render :action => "new" end end def show end def edit end def update if @post.update_attributes(params[:post]) redirect_to admin_posts_path, :notice => '記事を更新しました。' else render :action => "edit" end end # 削除機能 def destroy @post.delete redirect_to admin_posts_path end private def post_params params.require(:post).permit(:title, :content, :post_date, :user_id) end def set_post @post = Post.find(params[:id]) end end

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

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

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

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

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

guest

回答1

0

ベストアンサー

Started GET "/admin/posts/new?
Processing by Admin::PostsController#new

となっていて、create に渡たらず new に行ってますね。

new.html.erb 拝見したところでは、なぜ new に行くのか??? です。
あのformの記述で GET になるのが??

url: posts_path  にするとどうなります?
本来要らないはずなのですが method: :post も追加してみると?

投稿2019/07/23 03:01

winterboum

総合スコア23347

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

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

nnnn5

2019/07/23 12:12

状況が変わりませんでした(T ^ T)
nnnn5

2019/07/23 12:12

コメントありがとうございます!
winterboum

2019/07/23 12:30

変わらない、ということは Started GET "/admin/posts/new? Processing by Admin::PostsController#new だ、ということですか?method: :post も追加しても
nnnn5

2019/07/23 13:08

そうですね、、ちなみにupdateの処理でもedit止まりです。。。 <%= form_with model: [:admin, @post], :url => admin_posts_path, method: :post, local: true do |f| %> に書き換えたんですが ``` Started GET "/admin/posts/new?utf8=%E2%9C%93&authenticity_token=GaG1q2wA2ohMYSbLQUeNB%2FabqNyTyizPT2jDM2Y9x0QYWc2DEqknEbf7%2BcCwrnnMa1aXQd8y7NRQ0W%2BER1Z3AQ%3D%3D&post%5Btitle%5D=fafa&post%5Bcontent%5D=fafa&post%5Bpost_date%5D=2019-07-23&commit=%E6%8A%95%E7%A8%BF" for ::1 at 2019-07-23 22:08:01 +0900 Processing by Admin::PostsController#new as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"GaG1q2wA2ohMYSbLQUeNB/abqNyTyizPT2jDM2Y9x0QYWc2DEqknEbf7+cCwrnnMa1aXQd8y7NRQ0W+ER1Z3AQ==", "post"=>{"title"=>"fafa", "content"=>"fafa", "post_date"=>"2019-07-23"}, "commit"=>"投稿"} Rendering admin/posts/new.html.erb within layouts/application Rendered admin/posts/_form.html.erb (2.4ms) Rendered admin/posts/new.html.erb within layouts/application (5.9ms) Completed 200 OK in 100ms (Views: 93.4ms | ActiveRecord: 0.0ms) ```
winterboum

2019/07/23 13:49 編集

このlogによれば、admin/posts/new.html.erb の中で admin/posts/_form.html.erbを描いています。 提示されているのは admin/posts/new.html.erb だけで完結しています。 ここに出すにあたって編集してます? 生の admin/posts/new.html.erb  admin/posts/_form.html.erb を見せて下さい
nnnn5

2019/07/23 14:31

新規でアプリを作り直したらcreateすることができました。。なんだったのでしょうか。。ありがとうございました(T ^ T) newのURLがおかしいということだけはわかりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問