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

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

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

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

Q&A

1回答

872閲覧

form_forにcurrent_userの情報を表示させたいが持って来れない

kenta34344

総合スコア5

Ruby on Rails

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

0グッド

0クリップ

投稿2021/09/11 07:11

前提・実現したいこと

form_forにてユーザー情報と商品情報を送りたいです。その際に、ユーザー情報を入力しないでも登録情報を表示させたいです。

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

NoMethodError in Contacts#new Showing /Users/watanabekenta/orijinals/n-web_app/app/views/contacts/new.html.erb where line #28 raised: undefined method `name' for :current_user:Symbol

該当のソースコード

newhtml

1<div class="form-group"> 2 <div class='form-text-wrap'> 3 <label class="form-text">お名前</label> 4 <span class="indispensable">必須</span> 5 </div> 6 <%= f.text_area :current_user.name, class:"input-default", id:"user_name" %> 7 </div> 8 9 <div class="form-group"> 10 <div class='form-text-wrap'> 11 <label class="form-text">メールアドレス</label> 12 <span class="indispensable">必須</span> 13 </div> 14 <%= f.email_field current_user.email, class:"input-default", id:"email" %> 15 </div> 16 17 <div class="form-group"> 18 <div class='form-text-wrap'> 19 <label class="form-text">所属</label> 20 <span class="indispensable">必須</span> 21 </div> 22 <%= f.text_area current_user.occupation, class:"input-default" %> 23 </div> 24 <div class="form-group"> 25 <div class='form-text-wrap'> 26 <label class="form-text">メーカー名</label> 27 <span class="indispensable">必須</span> 28 </div> 29 <%= f.text_area :contact_manufacturer, class:"input-default", id:"contact_mamufacture", placeholder:"サンプル商品メーカー名" %> 30 </div> 31 <div class="form-group"> 32 <div class='form-text-wrap'> 33 <label class="form-text">商品名</label> 34 <span class="indispensable">必須</span> 35 </div> 36 <%= f.text_area :contact_item_name, class:"input-default", id:"contact_item_name", placeholder:"サンプル商品名" %> 37 </div> 38 <div class="form-group"> 39 <div class='form-text-wrap'> 40 <label class="form-text">特記事項</label> 41 </div> 42 <%= f.text_area :message, class:"input-default", id:"contact_message", placeholder:"補足があればご記入ください" %> 43 </div> 44 <div class="form-group"> 45 <h2 class='form-bottom-text'> 46 47 </h2> 48 </div> 49 <div class='register-btn'> 50 <%= f.submit "サンプル依頼" ,class:"register-red-btn" %> 51 </div> 52 </div> 53<% end %>

contactscontroller

1def show 2 end 3 4 # GET /contacts/new 5 def new 6 @user = current_user.id 7 @contact = Contact.new 8 end 9 10 # GET /contacts/1/edit 11 def edit 12 end 13 14 # POST /contacts or /contacts.json 15 def create 16 @contact = Contact.new(contact_params) 17 if @contact.save 18 ContactMailer.contact_mail(@contact).deliver 19 redirect_to contacts_path,notice: 'Contact was successfully created.' 20 end 21 end 22 23 # PATCH/PUT /contacts/1 or /contacts/1.json 24 def update 25 respond_to do |format| 26 if @contact.update(contact_params) 27 format.html { redirect_to @contact, notice: "Contact was successfully updated." } 28 format.json { render :show, status: :ok, location: @contact } 29 else 30 format.html { render :edit } 31 format.json { render json: @contact.errors, status: :unprocessable_entity } 32 end 33 end 34 end 35 36 # DELETE /contacts/1 or /contacts/1.json 37 def destroy 38 @contact.destroy 39 respond_to do |format| 40 format.html { redirect_to contacts_url, notice: "Contact was successfully destroyed." } 41 format.json { head :no_content } 42 end 43 end 44 45 private 46 # Use callbacks to share common setup or constraints between actions. 47 def set_contact 48 @contact = Contact.find(params[:id]) 49 end 50 51 # Only allow a list of trusted parameters through. 52 def contact_params 53 params.require(:contact).permit(:contact_manufacturer, :contact_item_name, :message).merge(user_id: current_user.id) 54 end 55end 56

contactmodel

1class Contact < ApplicationRecord 2 has_many :users, through: :user_contacts 3 has_many :user_contacts 4 5 with_options presence: true do 6 validates :contact_manufacturer 7 validates :contact_item_name 8 end 9end

試したこと

アソシエーションでつなげ、contact_params.marge(user_id: current_user.id)にてユーザー情報も取得してあります。何故undefined method `name'になるのでしょうか?

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

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

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

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

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

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

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

guest

回答1

0

<%= f.text_area :current_user.name, だからです
<%= f.text_area current_user.name,

投稿2021/09/11 09:09

winterboum

総合スコア23567

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

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

kenta34344

2021/09/11 09:59

それも試してみたのですが、空欄になってしまうのです…
winterboum

2021/09/11 10:03

name の入っている ユーザーですか?
kenta34344

2021/09/11 10:06

そうです。 ログインしてますが表示されません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問