133 Commits

Author SHA1 Message Date
jnfeinstein
a8492826a8 Fields are only cached when withRelation, so they should only be accessed when withRelation.
The result of .Fields() is quite different with and without withRelation.
I assume that if you call it without withRelation, you don't want the
fields that were cached when withRelation was true.
2014-11-27 14:04:05 -08:00
jnfeinstein
8b451f0084 Add support for polymorphic relationships using the POLYMORPHIC setting.
This commit adds support for two settings:

FOREIGNTYPE - A field that is used to store the type of the owner.

POLYMORPHIC - A shortcut to set FOREIGNKEY and FOREIGNTYPE to the same
value suffixed by "Id" and "Type" respectively.

The type is stored as the table name, which I thought might be useful
for other queries.

The biggest gotcha of this commit is that I flipped the definition of
has_one and belongs_to. gorm is very flexible such that it didn't
really care if it was a has_one or belongs_to, and can pretty much
determine it at runtime. For the sake of the error, I had to define
one of them as belongs_to, and I chose the one with the fields as
the belongs_to, like ActiveRecord. The error could probably be
genericized to "gorm cannot determine type", but I think it's nicer
to tell people DONT DO PATTERN XYZ CAUSE IT WONT WORK. Functionally,
it doesn't matter.
2014-11-25 21:35:47 -08:00
Jinzhu
e9684db42a Show error message if not using addressable value for auto migration 2014-11-25 13:44:14 +08:00
Paolo Galeone
064d91335b Add default values support ( https://github.com/jinzhu/gorm/issues/251 ) 2014-11-15 18:32:35 +01:00
Jinzhu
010e7a90b3 Fix can't update record with customized primary key 2014-11-11 11:46:21 +08:00
Jinzhu
6c1ca7adb8 Include ignored columns in Fields(), it could be used as cache field 2014-10-14 00:06:41 +08:00
Vytautas Šaltenis
67f71b2f86 Fix a bug with custom columns and ignored fields
An ignored field should also be ignored when column names are being
determined.
2014-10-10 00:05:15 +03:00
Jinzhu
0aaefebf4f Add support for custom column names 2014-10-07 22:37:33 +08:00
Tristan Storch
41eeeeea7c Cheanged if to switch in scope.go
Readability improved by changing a long if-else to a switch statement.
2014-10-06 11:11:07 +02:00
Jinzhu
375f3ee260 Merge pull request #239 from tstorch/cleanup
FieldValueByName does now only what it should
2014-10-03 13:32:18 +08:00
Tristan Storch
9bee4239d4 FieldValueByName does now only what it should
FieldValueByName in utils.go does now only what it should and has proper errors.
2014-10-01 16:20:12 +02:00
Tristan Storch
f1212ecd58 Readability update
Small readability update. Includes also a switch from bool return values to
error return values in Scope.SetColumn and Field.Set.
2014-09-30 14:02:51 +02:00
Tristan Storch
f771ee21da Minor Refactoring for readability
Refactored of a small portion if the scope code for readability
2014-09-26 15:35:04 +02:00
Jinzhu
953c347ba7 Refactor Scope 2014-09-02 19:03:01 +08:00
Jinzhu
b6d934aff9 Improve HasColumn method, support embedded struct 2014-09-01 17:04:07 +08:00
Jinzhu
7862dace6b Don't panic if can't get address 2014-09-01 14:15:29 +08:00
Jinzhu
c6b1669c6a Fix tests for Scanner 2014-08-30 23:14:14 +08:00
Jinzhu
6271cf0e55 Fix tests for postgres 2014-08-30 22:39:28 +08:00
Jinzhu
471eda5a12 Panic if found duplicated column name 2014-08-30 21:42:35 +08:00
Jinzhu
d806b7084f Pass anonymous struct tests 2014-08-30 21:42:35 +08:00
Jinzhu
b2360c11da Add Fields for embedded struct 2014-08-30 21:42:35 +08:00
Jinzhu
423d9496c1 update tests 2014-08-28 16:14:44 +08:00
Jinzhu
8f22434ded Use the original DB when create a new Scope 2014-08-27 16:50:22 +08:00
Jinzhu
5347765bd3 Merge pull request #206 from cihangir/master
gorm: added ability to change the time.now format
2014-08-27 16:19:55 +08:00
Jinzhu
922395c965 Add InstantSet for DB 2014-08-25 17:10:46 +08:00
Cihangir SAVAS
4e90fbf4e8 gorm: added ability to change the time.now format 2014-08-23 01:00:04 -07:00
Jinzhu
39ac95adbb Add InstanceSet, InstanceGet fomr Scope 2014-08-20 17:05:02 +08:00
Jinzhu
9012c9ea09 Add Set, Get method for DB 2014-08-20 16:25:01 +08:00
Jinzhu
a80a0a1636 By default, pluralize table name 2014-08-20 13:46:10 +08:00
Jinzhu
10668ee323 Don't raise error when get TableName even Scope has no db 2014-08-20 10:49:48 +08:00
Jinzhu
07e2d49b22 Fix invalid reflect value 2014-08-15 11:14:33 +08:00
Jinzhu
febc826511 Don't check relations if field is ignored 2014-08-14 21:54:23 +08:00
Jinzhu
90106d82c5 Export Relationship 2014-07-31 14:38:16 +08:00
Jinzhu
6c4b635176 Replace BeforeAssociation, AfterAssociation with association type 2014-07-30 21:14:10 +08:00
Jinzhu
2356182ea7 Rename joinTable to relationship 2014-07-30 20:59:52 +08:00
Jinzhu
e1e68debdc improve association 2014-07-30 20:48:36 +08:00
Jinzhu
9b3be66a77 Refact scope Fields 2014-07-30 15:15:23 +08:00
Jinzhu
0d3085393e Add IndirectValue for Scope 2014-07-30 14:58:00 +08:00
Jinzhu
14590a65dc Save many to many relations into join table 2014-07-30 14:18:15 +08:00
Jinzhu
a7aaf151cf Use JoinTable instead of ForeignKey 2014-07-30 11:32:18 +08:00
Jinzhu
0c63e57f5c Use tag to set primary key 2014-07-29 18:21:36 +08:00
Jinzhu
2d3bcf5297 Refact untils.go 2014-07-25 16:53:28 +08:00
Jinzhu
40c16f3c29 Export method ToSnake and SnakeToUpperCamel 2014-07-21 14:06:54 +08:00
Jinzhu
3eb4adafba Extract method FieldByName 2014-07-15 11:53:17 +08:00
Jinzhu
3bd5131132 Support slice of pointers 2014-07-08 10:45:31 +08:00
Jinzhu
325e6c2ef1 Fix tests with go v1.3 2014-07-02 11:56:44 +08:00
Jinzhu
11f232a200 Fix QuotedTableName 2014-06-10 13:08:19 +08:00
Jinzhu
f32fa0cb6e Add RowsAffected for DB 2014-06-05 17:58:14 +08:00
Jinzhu
0cba662be0 Add method QuotedTableName for Scope 2014-06-03 17:17:30 +08:00
Jinzhu
a46d149579 remove package dialect for easier contribution 2014-04-25 07:20:23 +08:00