ユーザーがサインインしていない場合にのみ組織を作成できるようにするにはどうすればよいですか?ユーザーモデルで組織を作成するには、current_userがサインインされていない限り..?
これは少し曖昧ですので、少しわかりやすくしてください。私は2つのテーブルを持っています。 1つの組織テーブル、および別のユーザーテーブル。組織は多くのユーザーを持ち、ユーザーは組織に属します。
#モデル/ organizations.rb
class Organization < ActiveRecord::Base
has_many :users
たときにユーザーがサインアップし、組織が自分のアカウントと一緒に作成されるように、私はそれを作りました。作品
#モデル/ user.rb
class User < ActiveRecord::Base
belongs_to :organization
before_create :create_organization
private
def create_organization
self.organization = Organization.create :name => self.name
end
クール、。
しかし、ユーザーはまた、アカウントの他の人々を申し込むことができるはず、と新しいユーザーのorganization_id
ことがcurrent_user.organization_id
と同じでなければなりません* #コントローラ/ users_controller.rb *
def create
@user = User.new(params[:user])
if current_user
@user.organization_id = current_user.organization_id
end
end
このソリューションは、ユーザーが既にサインインしていてもモデルが組織を作成しているため、私を制限しています。モデル内のbefore_filter
またはコントローラー内のif current_user
を取り出すと、あなた。
ユーザーモデルでcurrent_userにアクセスできないため、一緒に動作させるのが難しいです。
私はsignupリンクのパラメータとしてparamaterを指定しましたが、それは誰でも簡単にURLのorganization_idを変更して、自動的に所属していない別の組織彼らへ。
重要な場合は、認証ソリューションとしてAuthlogicを使用しています。
これを達成するためにユーザーモデルまたはユーザーコントローラでできることはありますか?
イエス、あなたはそれがとても難しいと思います。私はよく見落とすこれらの単純な解決策に驚いています。 D'oh !!多くの多くの多くの多くの感謝@mischa – cdotfeli
あなたは大歓迎です! – Mischa