현재 저는 devise를 사용하는 레일 프로젝트에서 작업 중이며 조금 문제가 있습니다.레일/Devise - 프로필에 사용자 이름 전달
저는 사용자 모델로 실행되는 기본 장치 : 설치가 있으며 프로파일이라는 다른 모델이 있습니다. belongs_to :user
이고 사용자는 has_one :profile
입니다.
내가 가진 문제는 사용자가 사용자 이름을 요구하므로 가입 할 때해야합니다. 그래서 이것은 devise를 통해 users 테이블에 전달됩니다. 그러나 사용자 프로필 url에 대한 사용자 이름을 사용해야합니다. 이는 프로필보기가있는 Users 테이블의 속성을 교차하는 것을 의미합니다.
사용자 모델에서 : after_create :build_profile
을 사용하여 해당 사용자의 프로필을 작성하십시오. 프로파일 테이블에 first_name
및 last_name
등의 프로파일이 작성됩니다.
따라서 'friendly_id'보석을 사용하면 'profiles/index'페이지의 속성을 사용자 프로필에 연결할 수 있습니다. 문제는 first_name
또는 last_name
과 같이 프로필 테이블에 전달 된 것만 사용할 수 있다는 것입니다. :username
은 프로필 테이블이 아닌 사용자 테이블에 있으므로 연결할 수 없습니다. profile_model.rb 파일에서
extend FriendlyId
friendly_id :first_name
및 프로파일에
/index.html.erb 파일이 내가 사용 :이 작동<% @profiles.each do |profile| %>
<p><%= link_to profile.user.username, profile %></p>
<% end %>
/profiles/John하지만 John과 같이 URL은 고유하지 않으므로 좋지 않습니다.
같은 것을 사용? – Eric
그런 간단한 해결책! 나는 당신이 표준 사용자 컨트롤러를 가질 수 있다는 것을 깨닫지 못했다. 나는 그것을 고안하기 위해 잠겨 있다고 생각했다. 사용자 컨트롤러를 만들고 프로필 정보를 전달하고 작동했습니다! 정말 고맙습니다! – abbott567