2013-04-11 18 views
0

我有以下型號:如何在mongoid和simpleform中做性別?

class User 
    include Mongoid::Document 
    has_one :gender 

class Gender 
    include Mongoid::Document 
    has_and_belongs_to_many :users 

性別表與性別播種。

我的用戶編輯simpleform如下:

<%= simple_form_for @user do |f| %> 
    <%= f.input :gender, :collection => Gender.all, :prompt => "Choose a gender" %> 
    <%= f.submit "Save" %> 
<% end %> 

但是當我保存這一點,user.gender沒有做任何事情。

任何人有任何想法呢?

回答

1

從我可以看到你的邏輯是這樣的 -

酮用戶有一個性別

-one gender have many users

class User 
    include Mongoid::Document 
    belongs_to :gender 

class Gender 
    include Mongoid::Document 
    has_many :users 

要獲得用戶的性別

user.gender 

爲用戶誰擁有同性別

gender.users 
+0

這是正確的。我的關係其實是錯誤的......你們的關係更有意義。 我還必須添加一個gender_id到我的attr_accessor中進行保存。 – kidcapital 2013-04-11 07:18:18

0

更改模型作爲

class User 
    include Mongoid::Document 
    has_one :gender 

class Gender 
    include Mongoid::Document 
    belongs_to :user 

,改變你的表單字段:

<%= f.input :gender_id, :collection => Gender.all, :prompt => "Choose a gender" %>