레일 4 애플리케이션에서 스캐 폴드에 의해 생성 된 모델을 구성하는 데 문제가 있습니다. 당신이 볼 수 있듯이 그들은이 사이트에 등록 할 때레일에서 스캐 폴드 생성기의 경로를 구성하는 방법
class Contact < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_one :contact
after_create :make_contact
def make_contact
create_contact(
:country => "USA",
:city => "Newyork"
)
end
end
, 나는 각 사용자에 대한 프로필 모델 인스턴스를 만드는거야 :
이들은
내 모델입니다.Devise GEM으로 User 모델을 생성하고 rails scaffold generator로 Contact 모델을 생성했습니다.
1) 내 사용자 만 프로필을 업데이트하거나 볼 수 있기를 바랍니다. 나는 그 (것)들이 모든 단면도를 목록으로 만들고, 그들의 단면도를 파괴하거나 새로운 단면도를 창조하는 것을 막고 싶다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
2) 방문/연락 경로를 이용할 때 내 응용 프로그램이 사용자 관련 프로필 페이지로 자동으로 리디렉션되도록하고 싶습니다.
3) 사용자가 URL을 변경하여 다른 사용자 프로파일을 볼 수 없습니다와 같은/연락처/1, 연락처/2 등
내가 어떻게 할 수 있습니까?
감사합니다. 당신은 당신이
resources :users, :only => [:new, :create, :edit, :update, :show] #index and destroy are not in the list
을 원하는 경우에만 작업을 지정할 수 있습니다
당신의 경로에서def UsersController < ApplicationController
before_filter :restrict_user, :only => [:show, :edit, :update]
private
def restrict_user
redirect_to :root, :alert => "Not authorized" unless params[:id] = current_user.id
end
end
, 컨트롤러에
연락처 컨트롤러에서 동일한을 수행 할 수있는 당신을 묻는 것은 왜 당신이 Devise를 사용해야하는지입니다. – wurde