spree_multi_slideshow 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +14 -12
- data/app/assets/images/store/bx_loader.gif +0 -0
- data/app/assets/images/store/controls.png +0 -0
- data/app/assets/javascripts/admin/slide_settings.js.erb +41 -0
- data/app/assets/javascripts/admin/slides/index.js.coffee +15 -0
- data/app/assets/javascripts/admin/slides/new.js.coffee +7 -0
- data/app/assets/javascripts/admin/spree_multi_slideshow.js +3 -1
- data/app/assets/javascripts/store/spree_multi_slideshow.js +1284 -1
- data/app/assets/stylesheets/store/spree_multi_slideshow.css +197 -3
- data/app/controllers/spree/admin/slide_settings_controller.rb +50 -0
- data/app/controllers/spree/admin/slides_controller.rb +15 -14
- data/app/controllers/spree/admin/slideshows_controller.rb +31 -0
- data/app/helpers/spree/slideshows_helper.rb +68 -0
- data/app/models/spree/app_configuration_decorator.rb +25 -0
- data/app/models/spree/product_decorator.rb +3 -0
- data/app/models/spree/slide.rb +23 -25
- data/app/models/spree/slideshow.rb +17 -0
- data/app/models/spree/taxon_decorator.rb +3 -0
- data/app/overrides/slideshow_admin_tab.rb +10 -0
- data/app/views/spree/admin/shared/_slideshow_sub_menu.html.erb +6 -0
- data/app/views/spree/admin/shared/_slideshow_tabs.html.erb +21 -0
- data/app/views/spree/admin/slide_settings/edit.html.erb +74 -0
- data/app/views/spree/admin/slides/_form.html.erb +29 -9
- data/app/views/spree/admin/slides/edit.html.erb +26 -16
- data/app/views/spree/admin/slides/index.html.erb +47 -31
- data/app/views/spree/admin/slides/new.html.erb +12 -9
- data/app/views/spree/admin/slideshows/_form.html.erb +59 -0
- data/app/views/spree/admin/slideshows/edit.html.erb +17 -0
- data/app/views/spree/admin/slideshows/index.html.erb +51 -0
- data/app/views/spree/admin/slideshows/new.html.erb +80 -0
- data/app/views/spree/admin/slideshows/new.js.erb +2 -0
- data/config/locales/en.yml +53 -85
- data/config/locales/it.yml +56 -90
- data/config/routes.rb +3 -1
- data/db/migrate/20120116081431_create_slideshows.rb +17 -0
- data/db/migrate/20120116083546_create_slides.rb +5 -4
- data/db/migrate/20120323164044_multi_slideshow_namespace.rb +1 -1
- data/lib/generators/spree_multi_slideshow/install/install_generator.rb +1 -21
- data/lib/spree_multi_slideshow.rb +0 -2
- metadata +26 -73
- data/app/assets/images/store/slides/bg-gallery.png +0 -0
- data/app/assets/images/store/slides/bg-text02.png +0 -0
- data/app/assets/images/store/slides/sprite01.png +0 -0
- data/app/assets/javascripts/admin/slides/index.js +0 -10
- data/app/assets/javascripts/admin/slides/new.js +0 -5
- data/app/assets/javascripts/store/fadeGallery.js +0 -229
- data/app/assets/stylesheets/admin/spree_multi_slideshow.css +0 -16
- data/app/assets/stylesheets/store/carousel_slideshow.css.scss +0 -73
- data/app/controllers/spree/admin/slideshow_types_controller.rb +0 -11
- data/app/controllers/spree/slides_controller.rb +0 -5
- data/app/controllers/spree/slideshow_types_controller.rb +0 -5
- data/app/helpers/spree/slides_helper.rb +0 -4
- data/app/helpers/spree/slideshow_types_helper.rb +0 -53
- data/app/models/spree/slideshow_type.rb +0 -18
- data/app/overrides/slideshow_type_admin_tab.rb +0 -4
- data/app/views/spree/admin/shared/_slideshow_type_tabs.html.erb +0 -16
- data/app/views/spree/admin/slideshow_types/_form.html.erb +0 -8
- data/app/views/spree/admin/slideshow_types/edit.html.erb +0 -8
- data/app/views/spree/admin/slideshow_types/index.html.erb +0 -32
- data/app/views/spree/admin/slideshow_types/new.html.erb +0 -7
- data/db/migrate/20120116081431_create_slideshow_types.rb +0 -15
@@ -0,0 +1,80 @@
|
|
1
|
+
<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @slideshow } %>
|
2
|
+
|
3
|
+
<%= form_for [:admin, @slideshow], :html => { :multipart => true } do |f| %>
|
4
|
+
|
5
|
+
<fieldset data-hook="new_slideshow">
|
6
|
+
|
7
|
+
<legend align="center"><%= t(:new_slideshow) %></legend>
|
8
|
+
|
9
|
+
<%= f.field_container :category do %>
|
10
|
+
<%= f.label :category, t(:category) %> <span class="required">*</span><br />
|
11
|
+
<%= f.text_field :category, :class => 'fullwidth title' %>
|
12
|
+
<%= f.error_message_on :category %>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<div data-hook="new_slideshow_attrs" class="row">
|
16
|
+
|
17
|
+
<div class="four columns">
|
18
|
+
<%= f.field_container :enable_navigation do %>
|
19
|
+
<%= f.label :enable_navigation, t(:enable_navigation) %><br />
|
20
|
+
<%= f.check_box :enable_navigation %>
|
21
|
+
<%= f.error_message_on :enable_navigation %>
|
22
|
+
<% end %>
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<div class="four columns">
|
26
|
+
<%= f.field_container :enable_pagination do %>
|
27
|
+
<%= f.label :enable_pagination, t(:enable_pagination) %><br />
|
28
|
+
<%= f.check_box :enable_pagination %>
|
29
|
+
<%= f.error_message_on :enable_pagination %>
|
30
|
+
<% end %>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<div class="four columns">
|
34
|
+
<%= f.field_container :enabled do %>
|
35
|
+
<%= f.label :enabled, t(:enabled) %><br />
|
36
|
+
<%= f.check_box :enabled %>
|
37
|
+
<%= f.error_message_on :enabled %>
|
38
|
+
<% end %>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div class="omega four columns">
|
42
|
+
<%= f.field_container :auto_start do %>
|
43
|
+
<%= f.label :auto_start, t(:auto_start) %><br />
|
44
|
+
<%= f.check_box :auto_start %>
|
45
|
+
<%= f.error_message_on :auto_start %>
|
46
|
+
<% end %>
|
47
|
+
</div>
|
48
|
+
|
49
|
+
<div class="ten columns">
|
50
|
+
<div class="three columns">
|
51
|
+
<%= f.field_container :infinite_loop do %>
|
52
|
+
<%= f.label :infinite_loop, t(:infinite_loop) %><br />
|
53
|
+
<%= f.check_box :infinite_loop %>
|
54
|
+
<%= f.error_message_on :infinite_loop %>
|
55
|
+
<% end %>
|
56
|
+
</div>
|
57
|
+
|
58
|
+
<div class="three columns">
|
59
|
+
<%= f.field_container :mode do %>
|
60
|
+
<%= f.label :mode, t(:mode) %><br />
|
61
|
+
<%= f.select(:mode, @slideshow.mode_enum, { :include_blank => false }, { :class => 'select2' }) %>
|
62
|
+
<%= f.error_message_on :mode %>
|
63
|
+
<% end %>
|
64
|
+
</div>
|
65
|
+
|
66
|
+
<div class="omega three columns">
|
67
|
+
<%= f.field_container :hide_control_on_end do %>
|
68
|
+
<%= f.label :hide_control_on_end, t(:hide_control_on_end) %><br />
|
69
|
+
<%= f.check_box :hide_control_on_end %>
|
70
|
+
<%= f.error_message_on :hide_control_on_end %>
|
71
|
+
<% end %>
|
72
|
+
</div>
|
73
|
+
</div>
|
74
|
+
|
75
|
+
</div>
|
76
|
+
|
77
|
+
<%= render :partial => 'spree/admin/shared/new_resource_links' %>
|
78
|
+
|
79
|
+
</fieldset>
|
80
|
+
<% end %>
|
data/config/locales/en.yml
CHANGED
@@ -1,95 +1,63 @@
|
|
1
|
-
---
|
2
1
|
en:
|
2
|
+
images_only: "must be JPG, JPEG, PNG o GIF"
|
3
|
+
slideshow_details: "Slideshow Details"
|
4
|
+
editing_slideshow: Edit Slideshow
|
5
|
+
slide_settings: Slide Setting
|
6
|
+
add_new_slide_style: "Add New Slide Style"
|
7
|
+
horizontal: "Horizontal"
|
8
|
+
fade: "Fade"
|
9
|
+
vertical: "Vertical"
|
10
|
+
slide_settings_warning: "You will need to regenerate thumbnails if you update the paperclip styles. Use rake paperclip:refresh:thumbnails CLASS=Spree::Slide to do this."
|
11
|
+
slide_settings_description: "Slide Settings Description"
|
12
|
+
slide_settings_updated: "Slide Settings successfully updated."
|
13
|
+
slide_default_style: "Slide Attachments Style"
|
14
|
+
slide_default_url: "Slide Attachments Default URL"
|
15
|
+
slide_path: "Slide Attachments Path"
|
16
|
+
slide_styles: "Slide Paperclip Styles"
|
17
|
+
slide_url: "Slide Attachments URL"
|
18
|
+
back_to_slides_list: "Back To Slides List"
|
19
|
+
back_to_slideshows_list: "Back To Slideshows List"
|
20
|
+
new_slideshow: "New Slideshow"
|
21
|
+
new_slide: "New Slide"
|
22
|
+
listing_slideshows: "Listing Slideshows"
|
23
|
+
listing_slides: "Listing Slides"
|
24
|
+
no_slides_found: "No Slide Found"
|
25
|
+
enabled: Enable?
|
26
|
+
slide_number: Slide number
|
27
|
+
slide_width: Width
|
28
|
+
slide_height: Height
|
29
|
+
enable_navigation: Navigation Enable?
|
30
|
+
enable_pagination: Pagination Enable?
|
31
|
+
mode: "Transaction type"
|
32
|
+
auto_start: "Auto start"
|
33
|
+
infinite_loop: "Infinite slide"
|
34
|
+
hide_control_on_end: "Hide controls on end"
|
35
|
+
title: Title
|
36
|
+
url: Link url
|
37
|
+
attachment: attachment
|
3
38
|
activerecord:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
inclusion: "is not included in the list"
|
9
|
-
exclusion: "is reserved"
|
10
|
-
invalid: "is invalid"
|
11
|
-
confirmation: "doesn't match confirmation"
|
12
|
-
record_invalid: "Validation failed: %{errors}"
|
13
|
-
taken: has already been taken
|
14
|
-
accepted: "must be accepted"
|
15
|
-
empty: "can't be empty"
|
16
|
-
blank: "can't be blank"
|
17
|
-
too_long:
|
18
|
-
one: "is too long (maximum is 1 character)"
|
19
|
-
other: "is too long (maximum is %{count} characters)"
|
20
|
-
too_short:
|
21
|
-
one: "is too short (minimum is 1 character)"
|
22
|
-
other: "is too short (minimum is %{count} characters)"
|
23
|
-
wrong_length:
|
24
|
-
one: "is the wrong length (should be 1 character)"
|
25
|
-
other: "is the wrong length (should be %{count} characters)"
|
26
|
-
not_a_number: "is not a number"
|
27
|
-
not_an_integer: "must be an integer"
|
28
|
-
greater_than: "must be greater than %{count}"
|
29
|
-
greater_than_or_equal_to: "must be greater than or equal to %{count}"
|
30
|
-
equal_to: "must be equal to %{count}"
|
31
|
-
less_than: "must be less than %{count}"
|
32
|
-
less_than_or_equal_to: "must be less than or equal to %{count}"
|
33
|
-
odd: "must be odd"
|
34
|
-
even: "must be even"
|
35
|
-
|
36
|
-
models:
|
37
|
-
slideshow_type:
|
38
|
-
attributes:
|
39
|
-
slideshow_type:
|
40
|
-
category: Category
|
41
|
-
enabled: Enable?
|
42
|
-
slide_width: Width
|
43
|
-
slide_height: Height
|
44
|
-
slide_number: Slide Number
|
45
|
-
enable_navigation: Next and Prev enable?
|
39
|
+
models:
|
40
|
+
slideshow:
|
41
|
+
one: Slideshow
|
42
|
+
other: Slideshows
|
46
43
|
slide:
|
47
|
-
|
48
|
-
|
49
|
-
title: Title
|
50
|
-
url: Link to product or taxonomy or to external website
|
51
|
-
image: Image
|
44
|
+
one: Slide
|
45
|
+
other: Slides
|
52
46
|
attributes:
|
53
|
-
|
47
|
+
slideshow:
|
54
48
|
category: Category
|
49
|
+
updated_at: Updated at
|
50
|
+
created_at: Created at
|
55
51
|
enabled: Enable?
|
52
|
+
slide_number: Slide number
|
56
53
|
slide_width: Width
|
57
54
|
slide_height: Height
|
58
|
-
|
59
|
-
|
55
|
+
enable_navigation: Navigation enable?
|
56
|
+
mode: "Transaction type"
|
57
|
+
auto_start: "Auto start"
|
58
|
+
infinite_loop: "Infinite slide"
|
59
|
+
hide_control_on_end: "Hide controls on end"
|
60
60
|
slide:
|
61
61
|
title: Title
|
62
|
-
url: Link
|
63
|
-
|
64
|
-
models:
|
65
|
-
slideshow_type:
|
66
|
-
one: Slideshow
|
67
|
-
many: Slideshows
|
68
|
-
slide:
|
69
|
-
one: Slide
|
70
|
-
many: Slides
|
71
|
-
|
72
|
-
slideshow_type:
|
73
|
-
one: Slideshow
|
74
|
-
many: Slideshows
|
75
|
-
enable: Enable?
|
76
|
-
category: Category
|
77
|
-
slide_number: Slide Number
|
78
|
-
detail: Detail
|
79
|
-
sidebar: Manage slideshow and slide.
|
80
|
-
new_page: New page
|
81
|
-
slide:
|
82
|
-
one: Slide
|
83
|
-
many: Slides
|
84
|
-
new_page: New Slide
|
85
|
-
image:
|
86
|
-
one: Image
|
87
|
-
many: Images
|
88
|
-
thumbnail: Thumbnail
|
89
|
-
title: Title
|
90
|
-
position: Position
|
91
|
-
content: Description
|
92
|
-
url: Link to product or taxonomy or to external website
|
93
|
-
editing_page: Editing slide
|
94
|
-
editing_page: Editing slideshow
|
95
|
-
confirm_delete: Are you sure ?
|
62
|
+
url: Link url
|
63
|
+
attachment: attachment
|
data/config/locales/it.yml
CHANGED
@@ -1,97 +1,63 @@
|
|
1
|
-
---
|
2
1
|
it:
|
2
|
+
images_only: "deve essere JPG, JPEG, PNG o GIF"
|
3
|
+
slideshow_details: "Dettagli Slideshow"
|
4
|
+
editing_slideshow: Modifica Slideshow
|
5
|
+
slide_settings: Impostazioni Slide
|
6
|
+
add_new_slide_style: "Aggiungi nuovo stile delle Slide"
|
7
|
+
horizontal: "Orizzontale"
|
8
|
+
fade: "Dissolvenza"
|
9
|
+
vertical: "Verticale"
|
10
|
+
slide_settings_warning: "Sarà necessario rigenerare le miniature dopo aver aggiornato gli stili di paperclip delle Slide, col comando rake paperclip:refresh:thumbnails CLASS=Spree::Slide"
|
11
|
+
slide_settings_description: "Descrizione Impostazioni Slide"
|
12
|
+
slide_settings_updated: "Impostazioni Slide aggiornate con successo."
|
13
|
+
slide_default_style: "Stile di Default dell'allegato delle Slide"
|
14
|
+
slide_default_url: "URL di Default dell'allegato delle Slide"
|
15
|
+
slide_path: "Percorso dell'allegato delle Slide"
|
16
|
+
slide_styles: "Stili di Paperclip delle Slide"
|
17
|
+
slide_url: "URL dell'allegato delle Slide"
|
18
|
+
back_to_slides_list: "Torna all'elenco Slides"
|
19
|
+
back_to_slideshows_list: "Torna all'elenco Slideshows"
|
20
|
+
new_slideshow: "Nuova Slideshow"
|
21
|
+
new_slide: "Nuova Slide"
|
22
|
+
listing_slideshows: "Elenco Slideshows"
|
23
|
+
listing_slides: "Elenco Slides"
|
24
|
+
no_slides_found: "Nessuna Slide Trovata"
|
25
|
+
enabled: Attiva?
|
26
|
+
slide_number: Numero Slide
|
27
|
+
slide_width: Larghezza
|
28
|
+
slide_height: Altezza
|
29
|
+
enable_navigation: Tasti navigazione attivi?
|
30
|
+
enable_pagination: Navigazione attiva?
|
31
|
+
mode: "Tipo transazione"
|
32
|
+
auto_start: "Start automatico"
|
33
|
+
infinite_loop: "Slide infinito"
|
34
|
+
hide_control_on_end: "Nascondi controller al termine"
|
35
|
+
title: Titolo
|
36
|
+
url: Link url
|
37
|
+
attachment: Immagine
|
3
38
|
activerecord:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
confirmation: "non coincide con la conferma"
|
12
|
-
record_invalid: "Validazione fallita: %{errors}"
|
13
|
-
taken: è già in uso
|
14
|
-
accepted: "deve essere accettata"
|
15
|
-
empty: "non può essere vuoto"
|
16
|
-
blank: "non può essere lasciato in bianco"
|
17
|
-
too_long:
|
18
|
-
one: "è troppo lungo (il massimo è 1 carattere)"
|
19
|
-
other: "è troppo lungo (il massimo è %{count} caratteri)"
|
20
|
-
too_short:
|
21
|
-
one: "è troppo corto (il minimo è 1 carattere)"
|
22
|
-
other: "è troppo corto (il minimo è %{count} caratteri)"
|
23
|
-
wrong_length:
|
24
|
-
one: "è della lunghezza sbagliata (deve essere di 1 carattere)"
|
25
|
-
other: "è della lunghezza sbagliata (deve essere di %{count} caratteri)"
|
26
|
-
not_a_number: "non è un numero"
|
27
|
-
not_an_integer: "non è un intero"
|
28
|
-
greater_than: "deve essere superiore a %{count}"
|
29
|
-
greater_than_or_equal_to: "deve essere superiore o uguale a %{count}"
|
30
|
-
equal_to: "deve essere uguale a %{count}"
|
31
|
-
less_than: "deve essere meno di %{count}"
|
32
|
-
less_than_or_equal_to: "deve essere meno o uguale a %{count}"
|
33
|
-
odd: "deve essere dispari"
|
34
|
-
even: "deve essere pari"
|
35
|
-
|
36
|
-
models:
|
37
|
-
slideshow_type:
|
38
|
-
attributes:
|
39
|
-
slideshow_type:
|
40
|
-
category: Categoria
|
41
|
-
enabled: Attivo?
|
42
|
-
slide_width: Larghezza
|
43
|
-
slide_height: Altezza
|
44
|
-
slide_number: Numero Slide
|
45
|
-
enable_navigation: Tasti navigazione attivi?
|
46
|
-
slide:
|
47
|
-
attributes:
|
48
|
-
slide:
|
49
|
-
title: Titolo
|
50
|
-
url: Link a prodotto o tassonomia o a sito esterno
|
51
|
-
image: Immagine
|
39
|
+
models:
|
40
|
+
slideshow:
|
41
|
+
one: Slideshow
|
42
|
+
other: Slideshows
|
43
|
+
slide:
|
44
|
+
one: Slide
|
45
|
+
other: Slides
|
52
46
|
attributes:
|
53
|
-
|
47
|
+
slideshow:
|
54
48
|
category: Categoria
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
49
|
+
updated_at: Aggiornata il
|
50
|
+
created_at: Creata il
|
51
|
+
enabled: Attiva?
|
52
|
+
slide_number: Numero Slide
|
53
|
+
slide_width: Larghezza
|
54
|
+
slide_height: Altezza
|
55
|
+
enable_navigation: Tasti navigazione attivi?
|
56
|
+
mode: "Tipo transazione"
|
57
|
+
auto_start: "Start automatico"
|
58
|
+
infinite_loop: "Slide infinito"
|
59
|
+
hide_control_on_end: "Nascondi controller al termine"
|
61
60
|
slide:
|
62
61
|
title: Titolo
|
63
62
|
url: Link a prodotto o tassonomia o a sito esterno
|
64
|
-
|
65
|
-
models:
|
66
|
-
slideshow_type:
|
67
|
-
one: Slideshow
|
68
|
-
many: Slideshows
|
69
|
-
slide:
|
70
|
-
one: Slide
|
71
|
-
many: Slides
|
72
|
-
|
73
|
-
|
74
|
-
slideshow_type:
|
75
|
-
one: Slideshow
|
76
|
-
many: Slideshows
|
77
|
-
enable: Attivo?
|
78
|
-
category: Categoria
|
79
|
-
slide_number: Numero Slide
|
80
|
-
detail: Attributi
|
81
|
-
sidebar: Gestione slideshow e slide.
|
82
|
-
new_page: Nuovo slideshow
|
83
|
-
slide:
|
84
|
-
one: Slide
|
85
|
-
many: Slides
|
86
|
-
new_page: Nuova slide
|
87
|
-
image:
|
88
|
-
one: Immagine
|
89
|
-
many: Immagini
|
90
|
-
thumbnail: Miniatura
|
91
|
-
title: Titolo
|
92
|
-
position: Posizione
|
93
|
-
content: Descrizione
|
94
|
-
url: Link a prodotto o tassonomia o a sito esterno
|
95
|
-
editing_page: Modifica slide
|
96
|
-
editing_page: Modifica slideshow
|
97
|
-
confirm_delete: Sei sicuro?
|
63
|
+
attachment: Immagine
|
data/config/routes.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
Spree::Core::Engine.routes.draw do
|
2
2
|
|
3
3
|
namespace :admin do
|
4
|
-
resources :
|
4
|
+
resources :slideshows do
|
5
5
|
resources :slides do
|
6
6
|
collection do
|
7
7
|
post :update_positions
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
11
|
+
|
12
|
+
resource :slide_settings
|
11
13
|
end
|
12
14
|
|
13
15
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class CreateSlideshows < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :slideshows do |t|
|
4
|
+
t.string :category
|
5
|
+
t.boolean :enabled, :default => false
|
6
|
+
t.string :mode, :default => 'horizontal'
|
7
|
+
t.boolean :auto_start, :default => false
|
8
|
+
t.boolean :infinite_loop, :default => false
|
9
|
+
t.boolean :hide_control_on_end, :default => true
|
10
|
+
t.boolean :enable_navigation, :default => true
|
11
|
+
t.boolean :enable_pagination, :default => false
|
12
|
+
|
13
|
+
t.timestamps
|
14
|
+
end
|
15
|
+
add_index :slideshows, :category, :unique => true
|
16
|
+
end
|
17
|
+
end
|
@@ -2,14 +2,15 @@ class CreateSlides < ActiveRecord::Migration
|
|
2
2
|
def change
|
3
3
|
create_table :slides do |t|
|
4
4
|
t.string :title, :url
|
5
|
-
t.text :
|
5
|
+
t.text :presentation
|
6
|
+
t.boolean :enabled, :default => true
|
6
7
|
|
7
8
|
t.string :attachment_content_type, :attachment_file_name
|
8
9
|
t.datetime :attachment_updated_at
|
9
10
|
t.integer :attachment_size, :position
|
10
|
-
|
11
|
-
|
12
|
-
t.references :
|
11
|
+
|
12
|
+
t.references :slideable, :polymorphic => true
|
13
|
+
t.references :slideshow
|
13
14
|
|
14
15
|
t.timestamps
|
15
16
|
end
|