我有一個用戶表和一個組織表。註冊用戶時,應用程序也會爲您創建一個新組織。我通過把這個代碼user.rb這樣做:If-Else聲明參數?
class User < ActiveRecord::Base
before_create :create_organization
belongs_to :organization
private
def create_organization
self.organization = Organization.create :name => self.name
end
end
但會有一些情況下,參數將通過URL來傳遞,如
http://localhost:3000/sign_up?organization_id=10
如何建立某種形式的的if-then語句,這樣如果organization_id
參數存在,用戶模型不會創建一個新的組織。但是反而提交現有的organization_id
參數作爲用戶的organization_id?
我在用戶控制器的def create部分放置了unless參數和'@user.organization_id = params [:organization_id]'。我不再出現錯誤,但當新用戶註冊時,它仍然創建一個新組織。 – cdotfeli 2011-12-19 10:48:31
@cdotfeli只是猜測,但你確定organization_id被傳遞到你的'create'動作?當您導航到「http:// localhost:3000/sign_up?organization_id = 10」時,它可能存在,但是當您提交表單時... – 2011-12-19 11:03:24
@ mark-guk NVM我知道了。我必須在user_controller的'def new'部分放入'@user.organization_id = params [:organization_id]',並在用戶註冊視圖中放置一個'f.hidden_field:organization_id'(包裹在'if params [ :organization_id],否則'代碼)。謝謝您的幫助! – cdotfeli 2011-12-19 11:03:59