我有3個表軌驗證數據和獲取數據使用強參數
User(id,email)
Org(id,name)
Role(id,user_id,org_id,role)
Ajax請求發送參數
org[name] test
org[user][email] [email protected]
在我的控制器
def create
client_org = Org.new(client_org_params)
respond_to do |format|
@client_org.valid?
if [email protected]_org.errors.blank?
format.json { render json: @client_org.errors, status: :unprocessable_entity }
elsif Org.saveClientOrg(@client_org)
end
end
private
def client_org_params
params.require(:client_org).permit(:name,user_attributes: [:email])
end
在Org.model
def self.saveClientOrg(orgData)
org=ClientOrg.new(orgData.name)//-->okay I got name: test
orgData.user.email //error? undefined method `user' for #<Org>
end
看起來像這樣的行代碼:orgData.user.email不正確。
當我離開2輸入字段空白並提交表單==>表單驗證說只有名稱是空白,並忽略電子郵件。雖然在型號user.rb我設置驗證:電子郵件,存在:真 任何人都幫助我?在此先感謝
編輯
User.rb
has_many :roles
has_many :orgs, through: :roles
default_scope -> { order('email ASC') }
validates_format_of :email, :with => Devise.email_regexp
validates :email, presence: true
Org.rb
has_many :roles
has_many :users, through: :roles
validates :name, presence: true , uniqueness: { case_sensitive: false }
Role.rb
belongs_to :user
belongs_to :org
請指定每個模型和視圖調用'控制器create'行動的協會。 – Leger
我認爲你可以在本文中找到一些有關如何調試問題的好主意:http://nofail.de/2013/10/debugging-rails-applications-in-development/ – phoet