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

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

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

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

Ruby on Rails

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

Q&A

0回答

975閲覧

Ruby on Rails ArgumentErrorを解消したい

YuichiKanno

総合スコア5

Ruby on Rails 5

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

Ruby on Rails

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

0グッド

0クリップ

投稿2019/11/21 08:35

編集2022/01/12 10:55

前提・実現したいこと

現在、Railsチュートリアルをアレンジしながら、Instagramのクローンアプリを作成しています。
そこで、
マイページにおける自己紹介文を編集し、表示をしたいと思っています。

前提
環境:cloud9

Gemfile:

source 'https://rubygems.org' gem 'rails', '5.1.6' gem 'devise' gem 'bcrypt', '3.1.12' gem 'faker', '1.7.3' gem 'will_paginate', '3.1.6' gem 'bootstrap-will_paginate', '1.0.0' gem 'bootstrap-sass', '3.3.7' gem 'puma', '3.9.1' gem 'sass-rails', '5.0.6' gem 'uglifier', '3.2.0' gem 'coffee-rails', '4.2.2' gem 'jquery-rails', '4.3.1' gem 'turbolinks', '5.0.1' gem 'jbuilder', '2.7.0' group :development, :test do gem 'sqlite3', '1.3.13' gem 'byebug', '9.0.6', platform: :mri end group :development do gem 'web-console', '3.5.1' gem 'listen', '3.1.5' gem 'spring', '2.0.2' gem 'spring-watcher-listen', '2.0.1' end group :test do gem 'rails-controller-testing', '1.0.2' gem 'minitest', '5.10.3' gem 'minitest-reporters', '1.1.14' gem 'guard', '2.13.0' gem 'guard-minitest', '2.4.4' end group :production do gem 'pg', '0.20.0' end # Windows環境ではtzinfo-dataというgemを含める必要があります gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

現在、Railsでプロフィールページと、その編集ページを作成しています。
マイページにはユーザーネームと自己紹介文を表示できるように設定し、
その編集先へのリンクを貼っています。

そして、その編集画面から更新ボタンを押した際、エラーが発生しました。

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

ArgumentError in UsersController#update
wrong number of arguments (given 0, expected 1)

Extracted source (around line #36):
34 def update
35 @user = User.find(params[:id])
36 if @user.update_attributes(user_params)
37 flash[:success] = "プロフィールを更新しました。"
38 redirect_to @user
39 else

イメージ説明

該当のソースコード

app/controllers/users_controller.rb

class UsersController < ApplicationController before_action :logged_in_user, only: [:index, :edit, :update, :destroy] before_action :correct_user, only: [:edit, :update] before_action :admin_user, only: :destroy def index @users = User.paginate(page: params[:page]) end def show @user = User.find(params[:id]) end def new @user = User.new end def create @user = User.new(user_params) if @user.save log_in @user flash[:success] = "Instagramへようこそ!" redirect_to @user else render 'new' end end def edit @user = User.find(params[:id]) end def update @user = User.find(params[:id]) if @user.update_attributes(user_params) flash[:success] = "プロフィールを更新しました。" redirect_to @user else render 'edit' end end def destroy User.find(params[:id]).destroy flash[:success] = "ユーザーが削除されました。" redirect_to users_url end private def user_params params.require(:user).permit(:fullname, :username, :email, :profile, :url, :phonenumber, :password, :sex, :password_confirmation) end # beforeアクション # ログイン済みユーザーかどうか確認 def logged_in_user unless logged_in? store_location flash[:danger] = "ログインして下さい" redirect_to login_url end end # 正しいユーザーかどうか確認 def correct_user @user = User.find(params[:id]) redirect_to(root_url) unless current_user?(@user) end # 管理者かどうか確認 def admin_user redirect_to(root_url) unless current_user.admin? end end

app/views/users/edit.html.erb

<% provide(:title, "プロフィール編集") %> <h1>プロフィール編集</h1> <div class="row"> <div class="col-md-6 col-md-offset-3"> <%= form_for(@user) do |f| %> <%= render 'shared/error_messages' %> <!--プロフィール写真--> <%= f.label :ユーザーネーム %> <%= f.text_field :username, class: 'form-control' %> <%= f.label :フルネーム %> <%= f.text_field :fullname, class: 'form-control' %> <%= f.label :ウェブサイト %> <%= f.text_field :url, class: 'form-control' %> <%= f.label :自己紹介 %> <%= f.text_area :profile, placeholder: "自己紹介文" %> <%= f.label :メールアドレス %> <%= f.text_field :email, class: 'form-control' %> <%= f.label :電話番号 %> <%= f.text_field :phonenumber, class: 'form-control' %> <%= f.label :性別 %> <%= f.text_field :sex, class: 'form-control' %> <%= link_to "パスワードを変更する", edit_password_reset_path %> <%= f.label :password %> <%= f.password_field :password, class: 'form-control' %> <%= f.label :password_confirmation, "Confirmation" %> <%= f.password_field :password_confirmation, class: 'form-control' %> <%= f.submit "更新する", class: "btn btn-primary" %> <% end %> </div> </div> <%= link_to "ユーザー削除", @user, method: :delete, data: { confirm: "よろしいですか?" } %>

app/views/users/show.html.erb

<% provide(:title, @user.fullname) %> <div class="row"> <aside class="col-md-4"> <section class="user_info"> <h1> <!--<%= @user.fullname %>--> <%= @user.username %> </h1> <p>自己紹介 : <%= @user.profile %></p> <%= link_to "プロフィール編集", edit_user_path(current_user) %> </section> </aside> </div>

実際のイメージ

イメージ説明

イメージ説明

イメージ説明

Qiitaや他の掲示板等による情報収集も試みましたが、解決には至りませんでした。
解決策や原因を教えていただきたいです。お願い致します。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問