go-on-rails 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +1 -1
 - data/lib/generators/gor/templates/gor_model.go.erb +97 -53
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: e1806b545b4bae0d8816bc273634b32ceee30292
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 39488fbb5332721fa236a551bdb7677dd8d3655c
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 26186a39dac4d17d4de99dda4c01c009bbb6b8969f9035fef7a1427fd2187807a073ade78f5863d4a7b473e4e622eb9786b68e1ffcf466d903435a66fa4d3fb6
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: c638a2daad0aeb2527edd25e2e249c27a41ad2d06aa60d16113d87c03ed34c31997505c6c91124352c7bb26a2ce33aea2dbb8c2f4d3c9101ebf980c39289b813
         
     | 
    
        data/README.md
    CHANGED
    
    
| 
         @@ -1,6 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <%- param_name_plural = table_name = @model_name.underscore.pluralize -%>
         
     | 
| 
       2 
2 
     | 
    
         
             
            <%- model_name_underscore = @model_name.underscore -%>
         
     | 
| 
       3 
3 
     | 
    
         
             
            <%- col_names = @struct_info[:col_names] -%>
         
     | 
| 
      
 4 
     | 
    
         
            +
            <%- has_assoc = !@struct_info[:assoc_info][:has_many].empty? || !@struct_info[:assoc_info][:has_one].empty? -%>
         
     | 
| 
       4 
5 
     | 
    
         
             
            // The file is generated by go-on-rails, a Rails generator gem:
         
     | 
| 
       5 
6 
     | 
    
         
             
            // https://rubygems.org/gems/go-on-rails
         
     | 
| 
       6 
7 
     | 
    
         
             
            // Or on Github: https://github.com/goonr/go-on-rails
         
     | 
| 
         @@ -102,11 +103,14 @@ func <%= @model_name %>IncludesWhere(assocs []string, sql string, args ...interf 
     | 
|
| 
       102 
103 
     | 
    
         
             
            		log.Println("No associated fields ard specified")
         
     | 
| 
       103 
104 
     | 
    
         
             
            		return var_<%= param_name_plural %>, err
         
     | 
| 
       104 
105 
     | 
    
         
             
            	}
         
     | 
| 
      
 106 
     | 
    
         
            +
            	if len(var_<%= param_name_plural %>) <= 0 {
         
     | 
| 
      
 107 
     | 
    
         
            +
            		return nil, errors.New("No results available")
         
     | 
| 
      
 108 
     | 
    
         
            +
            	}
         
     | 
| 
       105 
109 
     | 
    
         
             
            	ids := make([]interface{}, len(var_<%= param_name_plural %>))
         
     | 
| 
       106 
110 
     | 
    
         
             
            	for _, v := range var_<%= param_name_plural %> {
         
     | 
| 
       107 
111 
     | 
    
         
             
            		ids = append(ids, interface{}(v.Id))
         
     | 
| 
       108 
112 
     | 
    
         
             
            	}
         
     | 
| 
       109 
     | 
    
         
            -
            	<%-  
     | 
| 
      
 113 
     | 
    
         
            +
            	<%- if has_assoc -%>
         
     | 
| 
       110 
114 
     | 
    
         
             
            	idsHolder := strings.Repeat(",?", len(ids)-1)
         
     | 
| 
       111 
115 
     | 
    
         
             
            	for _, assoc := range assocs {
         
     | 
| 
       112 
116 
     | 
    
         
             
            		switch assoc {
         
     | 
| 
         @@ -125,7 +129,7 @@ func <%= @model_name %>IncludesWhere(assocs []string, sql string, args ...interf 
     | 
|
| 
       125 
129 
     | 
    
         
             
            						continue
         
     | 
| 
       126 
130 
     | 
    
         
             
            					}
         
     | 
| 
       127 
131 
     | 
    
         
             
            					for _, vv := range var_<%= v[:class_name].underscore.pluralize %> {
         
     | 
| 
       128 
     | 
    
         
            -
            						for  
     | 
| 
      
 132 
     | 
    
         
            +
            						for i, vvv := range  var_<%= param_name_plural %> {
         
     | 
| 
       129 
133 
     | 
    
         
             
            							<%- if v[:foreign_key] -%>
         
     | 
| 
       130 
134 
     | 
    
         
             
            								if vv.<%= v[:foreign_key].camelize %> == vvv.Id {
         
     | 
| 
       131 
135 
     | 
    
         
             
            									vvv.<%= k %> = append(vvv.<%= k %>, vv)
         
     | 
| 
         @@ -135,6 +139,7 @@ func <%= @model_name %>IncludesWhere(assocs []string, sql string, args ...interf 
     | 
|
| 
       135 
139 
     | 
    
         
             
            									vvv.<%= k %> = append(vvv.<%= k %>, vv)
         
     | 
| 
       136 
140 
     | 
    
         
             
            								}
         
     | 
| 
       137 
141 
     | 
    
         
             
            							<%- end -%>
         
     | 
| 
      
 142 
     | 
    
         
            +
            							var_<%= param_name_plural %>[i].<%= k %> = vvv.<%= k %>
         
     | 
| 
       138 
143 
     | 
    
         
             
            						}
         
     | 
| 
       139 
144 
     | 
    
         
             
            					}
         
     | 
| 
       140 
145 
     | 
    
         
             
            				<%- end -%>
         
     | 
| 
         @@ -142,7 +147,7 @@ func <%= @model_name %>IncludesWhere(assocs []string, sql string, args ...interf 
     | 
|
| 
       142 
147 
     | 
    
         
             
            			<%- unless @struct_info[:assoc_info][:has_one].empty? -%>
         
     | 
| 
       143 
148 
     | 
    
         
             
            				<%- has_one = @struct_info[:assoc_info][:has_one] -%>
         
     | 
| 
       144 
149 
     | 
    
         
             
            				<%- has_one.each do |k, v| -%>
         
     | 
| 
       145 
     | 
    
         
            -
            				case "<%= k %>":
         
     | 
| 
      
 150 
     | 
    
         
            +
            				case "<%= k.underscore %>":
         
     | 
| 
       146 
151 
     | 
    
         
             
            					<%- if v[:foreign_key] -%>
         
     | 
| 
       147 
152 
     | 
    
         
             
            						where := fmt.Sprintf("<%= v[:foreign_key] %> IN (?%s)", idsHolder)
         
     | 
| 
       148 
153 
     | 
    
         
             
            					<%- else -%>
         
     | 
| 
         @@ -154,7 +159,7 @@ func <%= @model_name %>IncludesWhere(assocs []string, sql string, args ...interf 
     | 
|
| 
       154 
159 
     | 
    
         
             
            						continue
         
     | 
| 
       155 
160 
     | 
    
         
             
            					}
         
     | 
| 
       156 
161 
     | 
    
         
             
            					for _, vv := range var_<%= v[:class_name].underscore.pluralize %> {
         
     | 
| 
       157 
     | 
    
         
            -
            						for  
     | 
| 
      
 162 
     | 
    
         
            +
            						for i, vvv := range  var_<%= param_name_plural %> {
         
     | 
| 
       158 
163 
     | 
    
         
             
            							<%- if v[:foreign_key] -%>
         
     | 
| 
       159 
164 
     | 
    
         
             
            								if vv.<%= v[:foreign_key].camelize %> == vvv.Id {
         
     | 
| 
       160 
165 
     | 
    
         
             
            									vvv.<%= k %> = vv
         
     | 
| 
         @@ -164,6 +169,7 @@ func <%= @model_name %>IncludesWhere(assocs []string, sql string, args ...interf 
     | 
|
| 
       164 
169 
     | 
    
         
             
            									vvv.<%= k %> = vv
         
     | 
| 
       165 
170 
     | 
    
         
             
            								}
         
     | 
| 
       166 
171 
     | 
    
         
             
            							<%- end -%>
         
     | 
| 
      
 172 
     | 
    
         
            +
            							var_<%= param_name_plural %>[i].<%= k %> = vvv.<%= k %>
         
     | 
| 
       167 
173 
     | 
    
         
             
            						}
         
     | 
| 
       168 
174 
     | 
    
         
             
            					}
         
     | 
| 
       169 
175 
     | 
    
         
             
            				<%- end -%>
         
     | 
| 
         @@ -400,40 +406,10 @@ func Destroy<%= @model_name %>(id int64) error { 
     | 
|
| 
       400 
406 
     | 
    
         
             
            	if err != nil {
         
     | 
| 
       401 
407 
     | 
    
         
             
            		return err
         
     | 
| 
       402 
408 
     | 
    
         
             
            	}
         
     | 
| 
       403 
     | 
    
         
            -
            	<%-  
     | 
| 
       404 
     | 
    
         
            -
             
     | 
| 
       405 
     | 
    
         
            -
             
     | 
| 
       406 
     | 
    
         
            -
             
     | 
| 
       407 
     | 
    
         
            -
            				<%- if opts.key? :dependent -%>
         
     | 
| 
       408 
     | 
    
         
            -
            					<%- if opts[:through] -%>
         
     | 
| 
       409 
     | 
    
         
            -
            						<%- case opts[:through] -%>
         
     | 
| 
       410 
     | 
    
         
            -
            						<%- when :destroy, :delete_all -%>
         
     | 
| 
       411 
     | 
    
         
            -
            							<%= opts[:class_name].underscore %>_ids, err := <%= opts[:through].to_s.singularize.camelize %>IntCol("<%= opts[:class_name].underscore %>_id", "<%= model_name_underscore %>_id = ?", var_<%= model_name_underscore %>.Id)
         
     | 
| 
       412 
     | 
    
         
            -
            							if err != nil {
         
     | 
| 
       413 
     | 
    
         
            -
            								return err
         
     | 
| 
       414 
     | 
    
         
            -
            							}
         
     | 
| 
       415 
     | 
    
         
            -
            							_, err = Destroy<%= opts[:class_name].pluralize %>(<%= opts[:class_name].underscore %>_ids...)
         
     | 
| 
       416 
     | 
    
         
            -
            							if err != nil {
         
     | 
| 
       417 
     | 
    
         
            -
            								return err
         
     | 
| 
       418 
     | 
    
         
            -
            							}
         
     | 
| 
       419 
     | 
    
         
            -
            							_, err = Destroy<%= opts[:through].to_s.pluralize.camelize %>Where("<%= model_name_underscore %>_id = ?", var_<%= model_name_underscore %>.Id)
         
     | 
| 
       420 
     | 
    
         
            -
            							if err != nil {
         
     | 
| 
       421 
     | 
    
         
            -
            								return err
         
     | 
| 
       422 
     | 
    
         
            -
            							}
         
     | 
| 
       423 
     | 
    
         
            -
            						<%- when :nullify -%>
         
     | 
| 
       424 
     | 
    
         
            -
            							<%#- FIXME: Need a DeleteAssociation func -%>
         
     | 
| 
       425 
     | 
    
         
            -
            						<%- end -%>
         
     | 
| 
       426 
     | 
    
         
            -
            					<%- else -%>
         
     | 
| 
       427 
     | 
    
         
            -
            						<%- if opts.key? :foreign_key -%>
         
     | 
| 
       428 
     | 
    
         
            -
            							Destroy<%= opts[:class_name].pluralize %>Where("<%= opts[:foreign_key] %> = ?", id)
         
     | 
| 
       429 
     | 
    
         
            -
            						<%- else -%>
         
     | 
| 
       430 
     | 
    
         
            -
            							Destroy<%= opts[:class_name].pluralize %>Where("<%= model_name_underscore %>_id = ?", id)
         
     | 
| 
       431 
     | 
    
         
            -
            						<%- end -%>
         
     | 
| 
       432 
     | 
    
         
            -
            					<%- end -%>
         
     | 
| 
       433 
     | 
    
         
            -
            				<%- end -%>
         
     | 
| 
       434 
     | 
    
         
            -
            			<%- end -%>
         
     | 
| 
       435 
     | 
    
         
            -
            		<%- end -%>
         
     | 
| 
       436 
     | 
    
         
            -
            	<%- end -%>
         
     | 
| 
      
 409 
     | 
    
         
            +
            	<%- if has_assoc -%>
         
     | 
| 
      
 410 
     | 
    
         
            +
            	// not care if exec properly temporarily
         
     | 
| 
      
 411 
     | 
    
         
            +
            	destroy<%= @model_name %>Associations(id)
         
     | 
| 
      
 412 
     | 
    
         
            +
                <%- end -%>
         
     | 
| 
       437 
413 
     | 
    
         
             
            	return nil
         
     | 
| 
       438 
414 
     | 
    
         
             
            }
         
     | 
| 
       439 
415 
     | 
    
         | 
| 
         @@ -458,21 +434,9 @@ func Destroy<%= @model_name.pluralize %>(ids ...int64) (int64, error) { 
     | 
|
| 
       458 
434 
     | 
    
         
             
            	if err != nil {
         
     | 
| 
       459 
435 
     | 
    
         
             
            		return 0, err
         
     | 
| 
       460 
436 
     | 
    
         
             
            	}
         
     | 
| 
       461 
     | 
    
         
            -
            	<%-  
     | 
| 
       462 
     | 
    
         
            -
             
     | 
| 
       463 
     | 
    
         
            -
             
     | 
| 
       464 
     | 
    
         
            -
            			<%- ass_cols.each_value do |opts| -%>
         
     | 
| 
       465 
     | 
    
         
            -
            				<%- if opts.key? :dependent -%>
         
     | 
| 
       466 
     | 
    
         
            -
            					<%- if opts.key? :foreign_key -%>
         
     | 
| 
       467 
     | 
    
         
            -
                where := fmt.Sprintf("<%= opts[:foreign_key] %> IN (?%s)", idsHolder)
         
     | 
| 
       468 
     | 
    
         
            -
                Destroy<%= opts[:class_name].pluralize %>Where(where, idsT)
         
     | 
| 
       469 
     | 
    
         
            -
            					<%- else -%>
         
     | 
| 
       470 
     | 
    
         
            -
            	where := fmt.Sprintf("<%= model_name_underscore %>_id IN (?%s)", idsHolder)
         
     | 
| 
       471 
     | 
    
         
            -
                Destroy<%= opts[:class_name].pluralize %>Where(where, idsT)
         
     | 
| 
       472 
     | 
    
         
            -
            					<%- end -%>
         
     | 
| 
       473 
     | 
    
         
            -
            				<%- end -%>
         
     | 
| 
       474 
     | 
    
         
            -
            			<%- end -%>
         
     | 
| 
       475 
     | 
    
         
            -
            		<%- end -%>
         
     | 
| 
      
 437 
     | 
    
         
            +
            	<%- if has_assoc -%>
         
     | 
| 
      
 438 
     | 
    
         
            +
            	// not care if exec properly temporarily
         
     | 
| 
      
 439 
     | 
    
         
            +
            	destroy<%= @model_name %>Associations(ids...)
         
     | 
| 
       476 
440 
     | 
    
         
             
            	<%- end -%>
         
     | 
| 
       477 
441 
     | 
    
         
             
            	return cnt, nil
         
     | 
| 
       478 
442 
     | 
    
         
             
            }
         
     | 
| 
         @@ -487,6 +451,9 @@ func Destroy<%= @model_name.pluralize %>Where(where string, args ...interface{}) 
     | 
|
| 
       487 
451 
     | 
    
         
             
            	} else {
         
     | 
| 
       488 
452 
     | 
    
         
             
            		return 0, errors.New("No WHERE conditions provided")
         
     | 
| 
       489 
453 
     | 
    
         
             
            	}
         
     | 
| 
      
 454 
     | 
    
         
            +
            	<%- if has_assoc -%>
         
     | 
| 
      
 455 
     | 
    
         
            +
            	ids, x_err := <%= @model_name %>IdsWhere(where, args...)
         
     | 
| 
      
 456 
     | 
    
         
            +
            	<%- end -%>
         
     | 
| 
       490 
457 
     | 
    
         
             
            	stmt, err := db.Preparex(db.Rebind(sql))
         
     | 
| 
       491 
458 
     | 
    
         
             
            	result, err := stmt.Exec(args...)
         
     | 
| 
       492 
459 
     | 
    
         
             
            	if err != nil {
         
     | 
| 
         @@ -496,9 +463,86 @@ func Destroy<%= @model_name.pluralize %>Where(where string, args ...interface{}) 
     | 
|
| 
       496 
463 
     | 
    
         
             
            	if err != nil {
         
     | 
| 
       497 
464 
     | 
    
         
             
            		return 0, err
         
     | 
| 
       498 
465 
     | 
    
         
             
            	}
         
     | 
| 
      
 466 
     | 
    
         
            +
            	<%- if has_assoc -%>
         
     | 
| 
      
 467 
     | 
    
         
            +
            	if x_err != nil {
         
     | 
| 
      
 468 
     | 
    
         
            +
            		log.Printf("Delete associated objects error: %v\n", err)
         
     | 
| 
      
 469 
     | 
    
         
            +
            	} else {
         
     | 
| 
      
 470 
     | 
    
         
            +
            		destroy<%= @model_name %>Associations(ids...)
         
     | 
| 
      
 471 
     | 
    
         
            +
            	}
         
     | 
| 
      
 472 
     | 
    
         
            +
            	<%- end -%>
         
     | 
| 
       499 
473 
     | 
    
         
             
            	return cnt, nil
         
     | 
| 
       500 
474 
     | 
    
         
             
            }
         
     | 
| 
       501 
475 
     | 
    
         | 
| 
      
 476 
     | 
    
         
            +
            <%- if has_assoc -%>
         
     | 
| 
      
 477 
     | 
    
         
            +
            // the func not return err temporarily
         
     | 
| 
      
 478 
     | 
    
         
            +
            func destroy<%= @model_name %>Associations(ids ...int64) {
         
     | 
| 
      
 479 
     | 
    
         
            +
            	idsHolder := ""
         
     | 
| 
      
 480 
     | 
    
         
            +
            	if len(ids) > 1 {
         
     | 
| 
      
 481 
     | 
    
         
            +
            		idsHolder = strings.Repeat(",?", len(ids)-1)
         
     | 
| 
      
 482 
     | 
    
         
            +
            	}
         
     | 
| 
      
 483 
     | 
    
         
            +
            	idsT := []interface{}{}
         
     | 
| 
      
 484 
     | 
    
         
            +
            	for _, id := range ids {
         
     | 
| 
      
 485 
     | 
    
         
            +
            		idsT = append(idsT, interface{}(id))
         
     | 
| 
      
 486 
     | 
    
         
            +
            	}
         
     | 
| 
      
 487 
     | 
    
         
            +
            	var err error
         
     | 
| 
      
 488 
     | 
    
         
            +
            	// make sure no declared-and-not-used exception
         
     | 
| 
      
 489 
     | 
    
         
            +
            	_, _, _ = idsHolder, idsT, err
         
     | 
| 
      
 490 
     | 
    
         
            +
            	<%- [:has_many, :has_one].each do |ass| -%>
         
     | 
| 
      
 491 
     | 
    
         
            +
            		<%- ass_cols = @struct_info[:assoc_info][ass] -%>
         
     | 
| 
      
 492 
     | 
    
         
            +
            		<%- unless ass_cols.empty? -%>
         
     | 
| 
      
 493 
     | 
    
         
            +
            			<%- ass_cols.each_value do |opts| -%>
         
     | 
| 
      
 494 
     | 
    
         
            +
            				<%- if opts.key? :dependent -%>
         
     | 
| 
      
 495 
     | 
    
         
            +
            					<%- case opts[:dependent] -%>
         
     | 
| 
      
 496 
     | 
    
         
            +
            					<%- when :destroy, :delete_all -%>
         
     | 
| 
      
 497 
     | 
    
         
            +
            						<%- if opts[:through] -%>
         
     | 
| 
      
 498 
     | 
    
         
            +
            							sql := fmt.Sprintf("id IN (SELECT id FROM <%= opts[:through].to_s %> WHERE <%= model_name_underscore %>_id IN (?%s))", idsHolder)
         
     | 
| 
      
 499 
     | 
    
         
            +
            							_, err = Destroy<%= opts[:class_name].pluralize %>Where(sql, idsT...)
         
     | 
| 
      
 500 
     | 
    
         
            +
            							if err != nil {
         
     | 
| 
      
 501 
     | 
    
         
            +
            								log.Printf("Destroy associated object %s error: %v\n", "<%= opts[:class_name].pluralize %>", err)
         
     | 
| 
      
 502 
     | 
    
         
            +
            							}
         
     | 
| 
      
 503 
     | 
    
         
            +
            							sql = fmt.Sprintf("<%= model_name_underscore %>_id IN (?%s)", idsHolder)
         
     | 
| 
      
 504 
     | 
    
         
            +
            							_, err = Destroy<%= opts[:through].to_s.pluralize.camelize %>Where(sql, idsT...)
         
     | 
| 
      
 505 
     | 
    
         
            +
            							if err != nil {
         
     | 
| 
      
 506 
     | 
    
         
            +
            								log.Printf("Destroy associated object %s error: %v\n", "<%= opts[:through].to_s.singularize.camelize %>", err)
         
     | 
| 
      
 507 
     | 
    
         
            +
            							}
         
     | 
| 
      
 508 
     | 
    
         
            +
            						<%- else -%>
         
     | 
| 
      
 509 
     | 
    
         
            +
            							<%- if opts.key? :foreign_key -%>
         
     | 
| 
      
 510 
     | 
    
         
            +
            								sql := fmt.Sprintf("<%= opts[:foreign_key] %> IN (?%s)", idsHolder)
         
     | 
| 
      
 511 
     | 
    
         
            +
            							<%- else -%>
         
     | 
| 
      
 512 
     | 
    
         
            +
            								sql := fmt.Sprintf("<%= model_name_underscore %>_id IN (?%s)", idsHolder)
         
     | 
| 
      
 513 
     | 
    
         
            +
            							<%- end -%>
         
     | 
| 
      
 514 
     | 
    
         
            +
            							_, err = Destroy<%= opts[:class_name].pluralize %>Where(sql, idsT...)
         
     | 
| 
      
 515 
     | 
    
         
            +
            							if err != nil {
         
     | 
| 
      
 516 
     | 
    
         
            +
            								log.Printf("Destroy associated object %s error: %v\n", "<%= opts[:class_name].pluralize %>", err)
         
     | 
| 
      
 517 
     | 
    
         
            +
            							}
         
     | 
| 
      
 518 
     | 
    
         
            +
            						<%- end -%>
         
     | 
| 
      
 519 
     | 
    
         
            +
            					<%- when :nullify -%>
         
     | 
| 
      
 520 
     | 
    
         
            +
            						// no sql.NULLType supported, just set the associated field to zero value of int64
         
     | 
| 
      
 521 
     | 
    
         
            +
            						<%- if opts[:through] -%>
         
     | 
| 
      
 522 
     | 
    
         
            +
            							sql := fmt.Sprintf("UPDATE <%= opts[:through].to_s %> SET <%= opts[:class_name].underscore %>_id = 0 WHERE <%= opts[:class_name].underscore %>_id IN (?%s)", idsHolder)
         
     | 
| 
      
 523 
     | 
    
         
            +
            							_, err = Update<%= opts[:through].to_s.camelize %>BySql(sql, idsT...)
         
     | 
| 
      
 524 
     | 
    
         
            +
            							if err != nil {
         
     | 
| 
      
 525 
     | 
    
         
            +
            								log.Printf("Delete associated object %s error: %v\n", "<%= opts[:class_name].pluralize %>", err)
         
     | 
| 
      
 526 
     | 
    
         
            +
            							}
         
     | 
| 
      
 527 
     | 
    
         
            +
            						<%- else -%>
         
     | 
| 
      
 528 
     | 
    
         
            +
            							<%- if opts.key? :foreign_key -%>
         
     | 
| 
      
 529 
     | 
    
         
            +
            								sql := fmt.Sprintf("UPDATE <%= opts[:class_name].underscore.pluralize %> SET <%= opts[:foreign_key] %> = 0 WHERE <%= opts[:foreign_key] %> IN (?%s)", idsHolder)
         
     | 
| 
      
 530 
     | 
    
         
            +
            							<%- else -%>
         
     | 
| 
      
 531 
     | 
    
         
            +
            								sql := fmt.Sprintf("UPDATE <%= opts[:class_name].underscore.pluralize %> SET <%= model_name_underscore %>_id = 0 WHERE <%= model_name_underscore %>_id IN (?%s)", idsHolder)
         
     | 
| 
      
 532 
     | 
    
         
            +
            							<%- end -%>
         
     | 
| 
      
 533 
     | 
    
         
            +
            							_, err = Update<%= opts[:class_name].pluralize %>BySql(sql, idsT...)
         
     | 
| 
      
 534 
     | 
    
         
            +
            							if err != nil {
         
     | 
| 
      
 535 
     | 
    
         
            +
            								log.Printf("Delete associated object %s error: %v\n", "<%= opts[:class_name].pluralize %>", err)
         
     | 
| 
      
 536 
     | 
    
         
            +
            							}
         
     | 
| 
      
 537 
     | 
    
         
            +
            						<%- end -%>
         
     | 
| 
      
 538 
     | 
    
         
            +
            					<%- end -%>
         
     | 
| 
      
 539 
     | 
    
         
            +
            				<%- end -%>
         
     | 
| 
      
 540 
     | 
    
         
            +
            			<%- end -%>
         
     | 
| 
      
 541 
     | 
    
         
            +
            		<%- end -%>
         
     | 
| 
      
 542 
     | 
    
         
            +
            	<%- end -%>
         
     | 
| 
      
 543 
     | 
    
         
            +
            }
         
     | 
| 
      
 544 
     | 
    
         
            +
            <%- end -%>
         
     | 
| 
      
 545 
     | 
    
         
            +
             
     | 
| 
       502 
546 
     | 
    
         
             
            func (var_<%= model_name_underscore %> *<%= @model_name %>) Save() error {
         
     | 
| 
       503 
547 
     | 
    
         
             
            	if var_<%= model_name_underscore %>.Id == 0 {
         
     | 
| 
       504 
548 
     | 
    
         
             
            		return errors.New("Invalid Id field: it can't be a zero value")
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: go-on-rails
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.5
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - B1nj0y
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017-04- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-04-20 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: Modeling, developing and testing your Golang app with your familiar Rails
         
     | 
| 
       14 
14 
     | 
    
         
             
              tools like rails generate, db migration, console etc. It is more meant to help integrating
         
     |