私はRailsが初めてです。ユーザー プロファイルを設定し、フィールドを追加して、もちろんユーザーが自分の経歴、自己紹介、身長、宗教などのプロファイル情報を変更できるようにします。この情報は、登録オプション (アカウント設定) とはまったく異なります。
私が抱えている問題は、プロファイル ページがアカウント設定に戻り、パスワードを入力する必要があると表示され、プロファイル フィールドではなく、すべてのアカウント設定フィールドが表示されることです。したがって、ユーザーが情報を送信した後もプロファイル ページをそのページに残す必要があり、その情報をアカウントに保存して、後で変更できるようにする必要があります。
ユーザープロファイル用の show.html ファイルは次のとおりです。
<h1><%= @user.username %></h1>
<h2>Basics</h2>
<%= form_for @user do |f| %>
<div class="field">
<%= f.label :height %><br/>
<%= f.select :about_me, [['Feet', nil], '4', '5', '6'] %>
<%= f.select :about_me, [['Inches', nil], '0', '1', '2', '3', '4',
'5', '6', '7', '8', '9', '10', '11'] %>
</div>
<div class="field">
<%= f.label :career %><br/>
<%= f.text_field :career %>
</div>
<div class="actions"><%= f.submit %></div>
<% end %>
これがユーザーコントローラーであり、アカウント設定ページに送り返す @user にリダイレクトしていることはわかっていますが、設定する値がわからないため、そうではありません:
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save
UserMailer.registration_confirmation(@user).deliver
session[:user_id] = @user.id
redirect_to root_url, notice: "Thank you for signing up!"
else
render "new"
end
end
def show
@user = User.find(params[:id])
if @user.show_profile(params[:user])
redirect_to @user
else
render 'edit'
end
end
def edit
@user = User.find(params[:id])
end
def index
@users = User.all
end
def destroy
User.find(params[:id]).destroy
flash[:success] = "User deleted."
redirect_to users_url
end
def update
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
flash[:success] = "Account updated"
redirect_to @user
else
render 'edit'
end
end
end