teratail header banner
teratail header banner
質問するログイン新規登録
Ruby on Rails 5

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

Ruby

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

Ruby on Rails 6

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

Ruby on Rails

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

Q&A

1回答

322閲覧

Userのidを取得して中身を表示させる

yutaro_takizawa

総合スコア0

Ruby on Rails 5

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

Ruby

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

Ruby on Rails 6

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

Ruby on Rails

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

0グッド

0クリップ

投稿2022/07/21 18:16

0

0

前提

Railsを使用して学生が企業にエントリーをすることができるアプリを作成しております。
学生(User)が企業(Company)にエントリーした情報を取得したいのですが以下のエラーメッセージが発生しました。


複雑なので下記にて説明させていただきます!

▪︎学生(Userモデル)・・・・・学生側のモデルで、学生は新規登録後にプロフィール(Home)を作成します。学生は企業にエントリーを飛ばすことがきできます。

▪︎企業(Companyモデル)・・・企業側のモデルで新規登録後にエントリー一覧(Applikant)へ飛びます。学生からのエントリーが入った場合はその一覧に学生の名前が表示される仕様です。その学生を押すと作成したプロフィールを確認することができるようにしたい(今回できていないのがこちらの実装になります)

実現したいこと

企業のエントリー一覧(Applikant)にてエントリーされた学生のプロフィールをshowにて確認できるようにしたいです。

発生している問題・エラーメッセージ

ActiveRecord::RecordNotFound in ApplicantsController#show Couldn't find User with 'id'=63 [WHERE "progress_statuses"."company_info_id" = ?] #該当箇所 def show @user = @company_info.users.find(params[:id]) ←こちらです @home = @user.homes end app/controllers/applicants_controller.rb:9:in `show'

該当のソースコード

applicants/new.html.erb

<div class="applicants"> <h1>エントリー一覧</h1> <div class="applicants-group"> <% @users.each do |user| %> <div class="applicants-body"> <div class="group-text"> <div class="top-text"> <h2><%= user.name %></h2> <hr class="applicants-hr"> <p>学校名:<%= user.school %></p> </div> <div class="button03"> <p style="text-align:center"><%= link_to "名刺をみる", applicant_path( user.homes.ids), class: 'btn btn-default' %></p> </div> </div> </div> <% end %> </div> </div>

applicants/show.html.erb

<h1>Applicants#show</h1> <p>Find me in app/views/applicants/show.html.erb</p> <h2><%= @home.name %></h2>

applicants/controller.rb

class ApplicantsController < ApplicationController before_action :set_company_info, only: [:index, :show] def index @users = @company_info.users end def show @user = @company_info.users.find(params[:id]) @home = @user.homes end private def set_company_info @company_info = current_company.company_info end end

routes.rb

Rails.application.routes.draw do resources 'applicants', only: [:index, :show] get 'search/index' root :to => "web#index" get 'detail' => "detail#index" get 'register' => "register#index" get 'company_infos', to: 'company_infos#index' resources 'home' #resources :companies resources :company_infos do get '/apply', action: :apply, as: :apply member do get :favorite end end #デバイス箇所は省きました!

applicants_path  | GET | /applicants(.:format) | applicants#index applicant_path  | GET | /applicants/:id(.:format) | applicants#show

試したこと

index.erbのリンク箇所"applicant_path( user.homes.ids)"の()内の記述に問題があることは大体わかったのですが、エラーコードを調べても改善はされませんでした

https://ichigick.com/record-not-found-with-id/

https://ichigick.com/urlgenerationerror-no-route-matches-missing-required-keys-id/

https://ichigick.com/undefined-method-for-nil/

補足情報(FW/ツールのバージョンなど)

ruby: 2.6.9p207 (2021-11-24 revision 67954) [x86_64-darwin16]
Rails 5.2.5

ここにより詳細な情報を記載してください。

すみません、初投稿なのでこの記載の仕方で問題ないかわかりませんが、ご回答のほどよろしくお願いします!

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

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

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

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

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

guest

回答1

0

applicant_path( user.homes.ids)
これでは params[:id] の中身は userのidではなく、そのhomesのidの配列です
applicant_path( user) に

投稿2022/07/21 22:49

winterboum

総合スコア23654

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問