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

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

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

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

Ruby

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

Q&A

解決済

1回答

594閲覧

アソシエーションについて

Yn_26247

総合スコア16

Ruby on Rails 5

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

Ruby

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

0グッド

0クリップ

投稿2020/07/31 07:23

ruby on railseの勉強始めて2週間の初心者です。
ログイン機能付きのホームページを作成しています。

ログイン機能にdeviceを用いて個人の情報を保存した後
プロフィールページに保存された名前を表示したいと考えています。

deviceのモデル名をloginとし

login.rb

belongs_to :user, dependent: :destroy

プロフィールページのモデル名をuserとし

use.rb

belongs_to :login,optional: true

routes.rb

resources :users, only: [:show, :edit, :update] resources :logins

show.html.erb (user)

def show @user = login.find(params[:id]) @post_images = @user.post_images.page(params[:page]).reverse_order end

で参照しようとしたのですが、
イメージ説明

このようなエラーが出てしまいできません。
そもそもモデル同士をアソシエーションして違うモデルからデータを引用する方法が間違っているのかなと思うのですが、どなたかアドバイスいただけるとありがたいいです。

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

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

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

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

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

maisumakun

2020/07/31 07:25

エラーとなっている「login」は、どこから値を取得することを意図したものでしょうか?
Yn_26247

2020/07/31 08:41

deviceのマイグレーションファイルである20200729102344_devise_create_logins.rbの t.string :nameから値を取得することを意図しています。 おかしなところが多々あるかと思いますが、ヒントだけでもいただけるとありがたいです。
maisumakun

2020/07/31 08:44

Loginの、「どのレコード」について値を取りたいのでしょうか?
Yn_26247

2020/07/31 09:26

Loginの自分のデータが保存されたレコード(現在は自分しか保存していないのでid=1)のnameというカラムから値を取りたいと考えています。 current_login.idを利用すると考えましたが、解決しませんでした‥
maisumakun

2020/07/31 09:30

ログイン機能は実装していますか?
Yn_26247

2020/07/31 10:05

先日実装しました。 今なぜかlogins/sign_inで開くとshow.html.erbのページに飛んでしまって開けませんが‥ Rails.application.routes.draw do devise_for :logins resources :books, only: [:new, :create, :index, :show,:edit] do end resources :users, only: [:show, :edit, :update] end
maisumakun

2020/07/31 10:39

loginでなくcurrent_loginを使う、のが適切なのではないでしょうか?
Yn_26247

2020/07/31 14:13

そこに付けるのが正しかったのですね、ありがとうございます。
guest

回答1

0

自己解決

current_loginとすることで解決できました、ありがとうございました。

投稿2020/08/05 03:21

Yn_26247

総合スコア16

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問