Commit 669d28c34e051ff9eda0118cdd791f0236c1357f
1 parent
2e70600e
Exists in
master
reademe
Showing
1 changed file
with
20 additions
and
14 deletions
Show diff stats
README.md
... | ... | @@ -47,9 +47,9 @@ Add magic fields to your model: |
47 | 47 | Supply additional options if you have more specific requirements for your fields: |
48 | 48 | |
49 | 49 | ```ruby |
50 | -@charlie.charlie.create_magic_fields(:name => "last_name", :is_required => true) | |
51 | -@charlie.charlie.create_magic_fields(:name => "birthday", :datatype => :date) | |
52 | -@charlie.charlie.create_magic_fields(:name => "salary", :default => "40000", :pretty_name => "Yearly Salary") | |
50 | +@charlie.create_magic_fields(:name => "last_name", :is_required => true) | |
51 | +@charlie.create_magic_fields(:name => "birthday", :datatype => :date) | |
52 | +@charlie.create_magic_fields(:name => "salary", :default => "40000", :pretty_name => "Yearly Salary") | |
53 | 53 | ``` |
54 | 54 | |
55 | 55 | The `:datatype` option supports: `:check_box_boolean`, `:date`, `:datetime`, `:integer` |
... | ... | @@ -84,7 +84,7 @@ class Account < ActiveRecord::Base |
84 | 84 | has_many :users |
85 | 85 | has_magic_fields |
86 | 86 | end |
87 | -@account = Account.create(:name => "BobCorp") | |
87 | +@account = Account.create(:name => "BobCorp",:type_scoped => "User") | |
88 | 88 | ``` |
89 | 89 | |
90 | 90 | And declare the child as having magic fields :through the parent. |
... | ... | @@ -98,24 +98,20 @@ end |
98 | 98 | @alice = User.create(:name => "alice", :account => @account) |
99 | 99 | ``` |
100 | 100 | |
101 | -To see all the magic fields available for a child from its parent: | |
101 | +To see all the magic fields available for a type_scoped(User) child from its parent: | |
102 | 102 | |
103 | 103 | ```ruby |
104 | 104 | @alice.magic_fields #=> [#<MagicColumn>,...] |
105 | -@account.magic_fields #=> [#<MagicColumn>,...] | |
106 | -@product.magic_fields #=> [#<MagicColumn>,...] | |
107 | -@alice.account.magic_fields #=> [#<MagicColumn>,...] | |
108 | -@product.account.magic_fields #=> [#<MagicColumn>,...] | |
109 | 105 | ``` |
110 | 106 | |
111 | 107 | To add magic fields, go through the parent or child: |
112 | 108 | |
113 | 109 | ```ruby |
114 | -@alice.magic_fields.create(...) | |
115 | -@account.magic_fields.create(...) | |
110 | +@alice.create_magic_fields(...) | |
111 | +@account.create_magic_fields(…,:type_scoped => "User") | |
116 | 112 | ``` |
117 | 113 | |
118 | -All children for a given parent will have access to the same magic fields: | |
114 | +All User children for a given parent will have access to the same magic fields: | |
119 | 115 | |
120 | 116 | ```ruby |
121 | 117 | @alice.create_magic_fields(:name => "salary") |
... | ... | @@ -127,6 +123,7 @@ All children for a given parent will have access to the same magic fields: |
127 | 123 | ``` |
128 | 124 | |
129 | 125 | |
126 | + | |
130 | 127 | ###Different Model Inherited from The Samle Model |
131 | 128 | the other modle Inherited from Account |
132 | 129 | |
... | ... | @@ -136,10 +133,19 @@ class Product < ActiveRecord::Base |
136 | 133 | belongs_to :account |
137 | 134 | has_magic_fields :through => :account |
138 | 135 | end |
136 | + | |
139 | 137 | @product = Product.create(:name => "car", :account => @account) |
140 | 138 | ``` |
141 | -@product haven't salary magic field. | |
142 | -@product.salary | |
139 | +@product haven't salary magic field, @product.salary should raise NoMethodError | |
140 | + | |
141 | +parent @account also haven't salary magic field | |
142 | + | |
143 | +## get all magic fields | |
144 | +```ruby | |
145 | +@account.magic_fields #get all meagic_fields both self and children | |
146 | +@account.magic_fields_with_scoped #get all meagic_fields self | |
147 | +@account.magic_fields_with_scoped("User") #get all meagic_fields User model | |
148 | +``` | |
143 | 149 | |
144 | 150 | ##To Do |
145 | 151 | ... | ... |