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

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

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

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

Ruby on Rails

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

Q&A

解決済

2回答

2018閲覧

Rails でパラメータの値を取得できないので教えていただけませんか?

koume

総合スコア458

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2018/03/20 15:10

Rails5.1.3でWebアプリケーション制作の勉強をしています。
ブラウザに表示されているレコードのidを取得したいのですが、取得できなくて困っています。
流れは以下のようになっています。

views/admin/records/account_change.html.erb から 
controllers/admin/banks_controller.rb の account_changeアクションに飛びます。
ここでviewに表示されているレコードのidを取得したいのですが上手くできません。
コードは以下のように記述しています。

views/admin/records/account_change.html.erb . <% change_account.each do |f| %> . . <td class="actions"> <%= link_to 'WEB総振登録', admin_bank_account_change_path(f) %> </td>
controllers/admin/banks_controller.rb  def account_change bank = Bank.find_by(customer_id: params[:id])----ここで取得できていないため bank.bk_name_check = bank.bk_name-----------------ここでエラーが発生 bank.office_check = bank.office bank.account_check = bank.account redirect_to :admin_root end
エラー内容 Processing by Admin::BanksController#account_change as HTML Parameters: {"host"=>"example.com", "bank_id"=>"2"} --------取得できているような感じですが・・・ Administrator Load (0.5ms) SELECT `administrators`.* FROM `administrators` WHERE `administrators`.`id` = 1 LIMIT 1 Bank Load (0.4ms) SELECT `banks`.* FROM `banks` WHERE `banks`.`customer_id` IS NULL LIMIT 1----NULLになっています。 Completed 500 Internal Server Error in 42ms (ActiveRecord: 4.1ms) NoMethodError (undefined method `bk_name' for nil:NilClass): app/controllers/admin/banks_controller.rb:32:in `account_change'

ブラウザで表示されているLinkの「WEB総振登録」にカーソルを持って行くと
example.com:3000/admin/banks/2/account_change と画面左下に表示されます。
id2は取得できているよな感じはしますが・・・・

bank = Bank.find_by(customer_id: params[:id])でブラウザで表示されているレコード(id=2)を
取得する方法を教えていただけないでしょうか?

どなたか教えていただけないでしょうか?宜しくお願いします.

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

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

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

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

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

guest

回答2

0

ベストアンサー

config/routes.rb を確認してみてください。

/banks/2/account_change
の 2 を id として処理したいなら、
get '/banks/:id/acount_change', to: 'bankss#account_change'
のようにする必要があります。

$ bin/rails routes で routes の設定状況を確認できます。

参考情報

  • URLを実際のコードに割り振る

https://railsguides.jp/routing.html#url%E3%82%92%E5%AE%9F%E9%9A%9B%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E5%89%B2%E3%82%8A%E6%8C%AF%E3%82%8B

投稿2018/03/20 21:39

編集2018/03/21 04:20
katoy

総合スコア22324

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

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

koume

2018/03/21 03:58

回答ありがとうございます。教えていただいた参考情報をもとに参考書を見直して勉強し納得しました。おかげさまで上手く取得できました。 今後とも宜しくお願いします。
guest

0

ログのパラメータ部分を見る限り、params[:id]ではなく、params[:bank_id]が正しいのでは?

投稿2018/03/20 17:38

k.tada

総合スコア1679

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

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

koume

2018/03/21 04:00

回答ありがとうございます。ズバリご指摘のとおりでした。おかげさまでパラメータの見方の勉強にもなりました。今後とも宜しくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問