0

認証/承認を最初から作成しました。登録時にユーザーが入力した情報とプロフィール情報を出力するページの作成についてサポートが必要です。たとえば、ユーザーがインデックスにアクセスすると、サインアップ情報(電子メール、パスワード、ユーザー、誕生日、郵便番号)が表示されます。次に、ユーザーは/ users / ID-HEREにアクセスして、プロフィール情報(身長、子供、キャリア、宗教、民族など)を入力できます。これは、ユーザーがプロフィール情報を編集できる唯一のページです。このページで/users/ ID-HERE/editユーザーは登録情報を変更できます。

今私が持っていないのは、ユーザーが入力した情報を出力するページで、編集フィールドのみが表示されます。だから私が本当に欲しいのは/users/ ID-ここにユーザーが入力した情報を表示することです(編集フィールドは表示しません)。次に、/ users / ID-HERE / editを使用すると、ユーザーはプロファイル情報を変更できます。次に、別のURLを作成します。/ users / ID-HERE / account-editを使用すると、ユーザーは登録情報を変更できます。そして、ある段階で、それを構築するときにユーザーCP内に登録情報を出力します。

そして、私はこれを行う方法を理解していません。アカウントとプロファイルの情報を編集できるページatmしかありませんが、ユーザーが入力した情報をプレーンテキストで出力するための個別のページはありません。

ルート.rb:

Dating::Application.routes.draw do
  get 'signup' => 'users#new'
  get 'login' => 'sessions#new'
  get 'logout' => 'sessions#destroy'
  get 'edit' => 'users#edit'
  get "/profile/:id" => "users#show"

  resources :users
  resources :sessions
  resources :password_resets
  resources :galleries
  resources :photos

show.html.erb(プロファイル情報):

<h1><%= @user.username %></h1>

<h2>Basics</h2>

<%= form_for @user do |f| %>

    <div class="field">
        <%= f.label :height %><br/>
        <%= f.select :feet, [['Feet', nil], '4', '5', '6'] %>
        <%= f.select :inches, [['Inches', nil], '0', '1', '2', '3', '4',                    
                                '5', '6', '7', '8', '9', '10', '11'] %>
        </div>
    <div class="field">
        <%= f.label :children %><br/>
        <%= f.select :children, [['Do you have or want kids?', nil], 'Yes, they live with me', 'I want kids now', 'I want one someday', 'Not for me']%>
        </div>
    <div class="field">
        <%= f.label :religion %><br/>
        <%= f.select :religion, [['What is your faith?', nil], 'Agnostic', 'Atheist', 'Christian', 'Catholic', 'Buddhist', 'Hindu', 'Jewish', 'Muslim', 'Spiritual without affiliation', 'Other', 'None', 'Prefer not to say']%><br/>
        <%= f.select :religion, [['How important is this to you?', nil], 'Very Important', 'Somewhat Important', 'Not Important']%>
        </div>
    <div class="field">
        <%= f.label :career %><br/>
        <%= f.text_field :career %>
    </div>
    <div class="field">
        <%= f.label :education %><br/>
        <%= f.select :education, [['What is your education level?', nil], 'High school', 'Some college', 'Undergraduate', "Bachelor's", "Master's ", 'PhD', 'Business school', 'Law school', 'Medical school' ]%>
        </div>
    <div class="field">
        <%= f.label :ethnicity %><br/>
        <%= f.select :ethnicity, [['What is your ethnicity?', nil], 'Asian', 'Black', 'Biracial', 'Indian', 'Hispanic/Latin', 'Middle Eastern', 'Native American', 'Pacific Islander', 'White', 'Other' ]%>
        </div>
        <%= f.label :user_drink %><br/>
        <%= f.select :user_drink, [['How much do you drink?', nil], 'Often Drinks', 'Sometimes drinks', 'Never drinks', 'No comment' ]%>
        </div><br/>
        <%= f.label :user_smoke %><br/>
        <%= f.select :user_smoke, [['How often do you smoke?', nil], 'Often smokes', 'Sometimes smokes', 'Never smokes'] %>
        </div>
    <div class="actions"><%= f.submit %></div>

    <h3>About Me</h3>

    <%= form_for @user do |f| %>

    <div class="field">
        <%= f.label :about_me %><br/>
        <%= f.text_field :about_me %>
    <div class="actions"><%= f.submit %></div>

<% end %>
<% end %>

new.html.erb(サインアップフォーム):

サインアップ

<%= form_for @user do |f| %>
  <% if @user.errors.any? %>
    <div class="error_messages">
      <h2>Form is invalid</h2>
      <ul>
        <% @user.errors.full_messages.each do |message| %>
          <li><%= message %></li>
        <% end %>
      </ul>
    </div>
  <% end %>

    <div class="field">
        <%= f.label :email %><br/>
        <%= f.text_field :email %>
    </div>
    <div class="field">
        <%= f.label :password %><br/>
        <%= f.password_field :password %>
    </div>
    <div class="field">
        <%= f.label :username %><br/>
        <%= f.text_field :username %>
    </div>
    <div class="field">
        <%= f.label :zip_code %><br/>
        <%= f.text_field :zip_code %>
    </div>
    <div class="field">
        <%= f.label :birthday %><br/>
        <%= f.text_field :birthday %>
    </div>
    <%= f.collection_select :role, User::ROLES, :to_s, :humanize %>
    <div class="actions"><%= f.submit %></div>
<% end %>
4

1 に答える 1

1

あなたのusers_controller

def show
  @user = User.find(params[:id])
end

これで、ビュー@userで利用できるようになりました。showしたがって、フォームは必要ありません。

<h1><%= @user.username %></h1>

<h2>Basics</h2>
  <p><%= @user.feet %></p>
  <p><%= @user.inches %></p>
  <p><%= @user.children %></p>
  <p><%= @user.religion %></p>
  ...   

また、リソースはデフォルトで7つのルートを提供するため、以下を使用するよりも一部のエイリアスを作成できますmatch

match '/signup', :to => 'users#new'
match '/login',  :to => 'sessions#new'
match '/logout', :to => 'sessions#destroy'

resources :users
resources :sessions
resources :password_resets
resources :galleries
resources :photos
于 2013-03-19T17:04:14.937 に答える