복붙노트

[RUBY-ON-RAILS] 유증 사용자를위한 모델 프로필?

RUBY-ON-RAILS

유증 사용자를위한 모델 프로필?

내 유증 설치의 형태로까지 기호를 확장하고자합니다. 나는 프로필 모델을 만들어 나는이 모델에 양식의 특정 데이터를 추가하는 방법을, 지금 자신을 요구하고있다. 어디 유증의 UserController는 어디에 있습니까?

사전에 감사합니다!

해결법

  1. ==============================

    1.당신이 has_one 프로필 협회와 사용자 모델을 가정 할 때, 당신은 단순히 사용자의 중첩 된 속성을 허용하고 유증 등록보기를 수정해야합니다.

    당신이 has_one 프로필 협회와 사용자 모델을 가정 할 때, 당신은 단순히 사용자의 중첩 된 속성을 허용하고 유증 등록보기를 수정해야합니다.

    레일이 고안 생성 실행하여 사용자 모델과 함께 양식을 업데이트 프로필 모델까지 귀하의 가입을 위해 fields_for 폼 헬퍼를 사용하여 아래와 같이보기는 명령 후 유증 등록 # new.html.erb보기를 수정합니다.

    <div class="register">
      <h1>Sign up</h1>
    
      <% resource.build_profile %>
      <%= form_for(resource, :as => resource_name,
                             :url => registration_path(resource_name)) do |f| %>
        <%= devise_error_messages! %>
    
        <h2><%= f.label :email %></h2>
        <p><%= f.text_field :email %></p>
    
        <h2><%= f.label :password %></h2>
        <p><%= f.password_field :password %></p>
    
        <h2><%= f.label :password_confirmation %></h2>
        <p><%= f.password_field :password_confirmation %></p>
    
        <%= f.fields_for :profile do |profile_form| %>
          <h2><%= profile_form.label :first_name %></h2>
          <p><%= profile_form.text_field :first_name %></p>
    
          <h2><%= profile_form.label :last_name %></h2>
          <p><%= profile_form.text_field :last_name %></p>
        <% end %>
    
        <p><%= f.submit "Sign up" %></p>
    
        <br/>
        <%= render :partial => "devise/shared/links" %>
      <% end %>
    </div>
    

    그리고 당신의 사용자 모델 :

    class User < ActiveRecord::Base
      ...
      attr_accessible :email, :password, :password_confirmation, :remember_me, :profile_attributes
      has_one :profile
      accepts_nested_attributes_for :profile
      ...
    end
    
  2. ==============================

    2.레일은 중첩 된 속성을 보존 할 수 있도록 강력한 매개 변수를 사용해야합니다 4.x의에서의 mbreining 대답을 보완합니다. 등록 컨트롤러 서브 클래스를 생성합니다 :

    레일은 중첩 된 속성을 보존 할 수 있도록 강력한 매개 변수를 사용해야합니다 4.x의에서의 mbreining 대답을 보완합니다. 등록 컨트롤러 서브 클래스를 생성합니다 :

    RegistrationsController < Devise::RegistrationsController
    
      def sign_up_params
        devise_parameter_sanitizer.sanitize(:sign_up)
        params.require(:user).permit(:email, :password, profile_attributes: [:first_name, :last_name])
      end
    end
    
  3. ==============================

    3.그것은 매우 귀하의 질문에서 명확하지,하지만 난 당신의 고안 모델은 사용자이며 사용자에 속하는 다른 모델의 프로필을 생성 있으리라 믿고있어.

    그것은 매우 귀하의 질문에서 명확하지,하지만 난 당신의 고안 모델은 사용자이며 사용자에 속하는 다른 모델의 프로필을 생성 있으리라 믿고있어.

    당신은 레일 g 컨트롤러 사용자와 사용자 모델 컨트롤러를 만들어야합니다.

    레일 유증 생성과 또한 사용자의 뷰를 생성해야합니다 :보기를  그는 자신의 계정을 만들 때 그래서 사용자는 프로필 정보를 추가 할 수 있습니다.

    , 그냥 다른 모델처럼 거기에서 : 사용자 및 프로필 인스턴스를 생성하고이 둘을 연결합니다. 그런 다음 컨트롤러에서 사용 current_user.profile는 현재 사용자의 프로필에 액세스 할 수 있습니다.

    당신이 사용자에게이 방법을 관리하는 거라면, 당신은 제거해야한다는 점 참고 : 사용자 모델에서 등록 가능한 모듈 (도 https://github.com/plataformatec/devise/wiki/How-To:-Manage 읽기 -users 연결-A-CRUD 인터페이스)

  4. ==============================

    4.뷰에서 건물 자원을 넣어하지 위해 또 다른 방법은, 새로운 방법을 고안 컨트롤러를 다시 작성하고 정확하게하는 것입니다, u는 할 필요가로 변경하는 것입니다 :

    뷰에서 건물 자원을 넣어하지 위해 또 다른 방법은, 새로운 방법을 고안 컨트롤러를 다시 작성하고 정확하게하는 것입니다, u는 할 필요가로 변경하는 것입니다 :

     def new
       build_resource({})
       resource.build_profile 
       respond_with self.resource
     end
    
  5. ==============================

    5.저도 같은 질문에 최근 답변을 고안 사용자를위한 프로필 작성보고 사용하는 것이 좋습니다 4 + 유증은 레일

    저도 같은 질문에 최근 답변을 고안 사용자를위한 프로필 작성보고 사용하는 것이 좋습니다 4 + 유증은 레일

  6. from https://stackoverflow.com/questions/4307743/profile-model-for-devise-users by cc-by-sa and MIT license