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

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

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

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

Ruby

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1334閲覧

updateされると同時にdestroyも動かす方法

anko2

総合スコア7

Ruby on Rails 5

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

Ruby

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2018/06/02 13:17

編集2018/06/02 13:24

ruby

1 2class Api::UsersController < ApplicationController 3 4 def update 5 user = User.find(params[:id]) 6 if user.update(user_params) 7 Hint.find(params[:id]).destroy 8 SecretHint.find(params[:id]).destroy 9 render json: @user 10 else 11 @msg = '失敗' 12 render json: @msg 13 end 14 end 15end

updateされると同時にdestroyも動かしたいですがNameError (undefined local variable or method `user_params' for #Api::UsersController:0x007fc1e520f5e0):
このエラーが出ます。

このようなアルゴリズムは可能でしょうか?
また解決策をご教授願います。

※createを使うとROLLBACKになり
ArgumentError (wrong number of arguments (given 0, expected 1..2)):
このエラーが出ました。

Started PATCH "/api/users/2" for 127.0.0.1 at 2018-06-02 22:21:36 +0900 Processing by Api::UsersController#update as JSON Parameters: {"{\n \"like_person_twitter_id\" "=>" \"3\"\n}", "id"=>"2"} User Load (0.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 LIMIT 1 ↳ app/controllers/api/users_controller.rb:8 Completed 400 Bad Request in 22ms (ActiveRecord: 0.7ms) ActionController::ParameterMissing (param is missing or the value is empty: user): app/controllers/api/users_controller.rb:27:in `user_params' app/controllers/api/users_controller.rb:9:in `update'

追記/今は上のようなエラーが出ています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

NameError (undefined local variable or method `user_params' for #Api::UsersController:0x007fc1e520f5e0)

user_paramsメソッドがありません。


Processing by Api::UsersController#update as JSON

Parameters: {"{\n "like_person_twitter_id" "=>" "3"\n}", "id"=>"2"}

クエリの投げ方が間違ってます。

基本的にRailsでjsonを受け取るときは送信側でContent-Typeapplication/jsonを指定する必要があります。

投稿2018/06/02 21:45

asm

総合スコア15147

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問