rails_voter 0.0.3 → 0.1.0

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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/rails_voter/application.js +4 -0
  3. data/app/assets/javascripts/rails_voter/voting_results.js +2 -0
  4. data/app/assets/stylesheets/rails_voter/{application.css → application.scss} +3 -2
  5. data/app/assets/stylesheets/rails_voter/voting_results.css +4 -0
  6. data/app/controllers/rails_voter/elections_controller.rb +39 -0
  7. data/app/controllers/rails_voter/voting_results_controller.rb +17 -0
  8. data/app/models/rails_voter/{ballot_form.rb → election.rb} +3 -3
  9. data/app/models/rails_voter/election_detail.rb +6 -0
  10. data/app/models/rails_voter/voting_result.rb +14 -1
  11. data/app/views/layouts/rails_voter/_menu.html.haml +12 -0
  12. data/app/views/layouts/rails_voter/{application.html.erb → aaaapplication.html.erb} +0 -0
  13. data/app/views/layouts/rails_voter/application.html.haml +32 -0
  14. data/app/views/rails_voter/{ballot_forms/_ballot_form_detail_record.html.haml → elections/_election_detail_record.html.haml} +1 -1
  15. data/app/views/rails_voter/elections/_form.html.haml +9 -0
  16. data/app/views/rails_voter/{ballot_forms → elections}/edit.html.haml +0 -0
  17. data/app/views/rails_voter/elections/index.html.haml +8 -0
  18. data/app/views/rails_voter/{ballot_forms → elections}/new.html.haml +0 -0
  19. data/app/views/rails_voter/elections/show_result.html.haml +5 -0
  20. data/app/views/rails_voter/elections/vote.html.haml +9 -0
  21. data/app/views/rails_voter/voting_results/create.html.haml +2 -0
  22. data/config/locales/en.yml +2 -2
  23. data/config/locales/pl.yml +2 -2
  24. data/config/routes.rb +7 -2
  25. data/db/migrate/20160707113355_change_ballot_form_name.rb +9 -0
  26. data/db/migrate/20160707114814_change_ballot_form_detail_name.rb +9 -0
  27. data/db/migrate/20160707131546_change_ballot_form_detail_id_name.rb +9 -0
  28. data/db/migrate/20160707143841_change_ballot_form_id_column_name.rb +9 -0
  29. data/db/seeds.rb +24 -14
  30. data/lib/rails_voter/engine.rb +3 -0
  31. data/lib/rails_voter/version.rb +1 -1
  32. metadata +72 -18
  33. data/app/controllers/rails_voter/ballot_forms_controller.rb +0 -36
  34. data/app/models/rails_voter/ballot_form_detail.rb +0 -6
  35. data/app/views/rails_voter/ballot_forms/_form.html.haml +0 -9
  36. data/app/views/rails_voter/ballot_forms/index.html.haml +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 36b9bfde64d9061cd68ee7c04cb88d88b3776664
4
- data.tar.gz: 3025d3581689efa39c2e90f24f66346603015fa5
3
+ metadata.gz: 2cdf2dab644d3921613e5a11d4525a0f63b08f22
4
+ data.tar.gz: d5b0a6487b627b7baf10820855d6cacba596f655
5
5
  SHA512:
6
- metadata.gz: 685fe8d2e45a8f87a78cdccaf3094ea7bf37dd0aa6a61ca0ececc722d811005e91ac7a5d268837295463ca80aa7b52a7bfcab1c3a0514aef61d5fa4025839f34
7
- data.tar.gz: 186ea3ee743462623e4390b2e9df5ece76f8772bc01a6bde4ba80f529e4425e7d34f6a55fe035488e050b98529f46cc862178769ff3932c603cb96a4a5957bf0
6
+ metadata.gz: 4b03b5bf021633675bd766a500dfa3436b4881e57d8a082aeed2ae3f22b2f9f92f4b97cf58fb7a17577bf61548ee08dc620bc4fdc5aed9bc23c4f476676b176d
7
+ data.tar.gz: 5c4c983b59ffa845a488db1d356dcb13c16ffe1daabdb784fb763b2e6e866bda44fe1f458c30828eaeb06d08971ba346e445c92ee455debd426c9b574e803e9b
@@ -10,4 +10,8 @@
10
10
  // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
11
  // about supported directives.
12
12
  //
13
+ //= require jquery
14
+ //= require jquery_ujs
15
+ //= require bootstrap-sprockets
16
+
13
17
  //= require_tree .
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -10,6 +10,7 @@
10
10
  * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
11
  * file per style scope.
12
12
  *
13
- *= require_tree .
14
- *= require_self
15
13
  */
14
+
15
+ @import "bootstrap-sprockets";
16
+ @import "bootstrap";
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,39 @@
1
+ require_dependency "rails_voter/application_controller"
2
+
3
+ module RailsVoter
4
+ class ElectionsController < ApplicationController
5
+ expose :elections, -> { Election.all }
6
+ expose :election, model: RailsVoter::Election
7
+ expose :election_details, -> { ElectionDetail.where(election_id: params[:id]) }
8
+ expose :voting_result, -> { RailsVoter::VotingResult.new }
9
+ expose :voting_result_show, -> { RailsVoter::VotingResult.show(params[:id]) }
10
+
11
+ def new
12
+ 10.times do
13
+ election.election_details.new
14
+ end
15
+ end
16
+
17
+ def create
18
+ if election.save
19
+ redirect_to elections_path
20
+ else
21
+ render :new
22
+ end
23
+ end
24
+
25
+ def update
26
+ if election.update(election_params)
27
+ redirect_to elections_path
28
+ else
29
+ render :new
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def election_params
36
+ params.require(:election).permit(:name, election_details_attributes: [:name, :id])
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,17 @@
1
+ require_dependency "rails_voter/application_controller"
2
+
3
+ module RailsVoter
4
+ class VotingResultsController < ApplicationController
5
+ expose :voting_result, model: RailsVoter::VotingResult
6
+
7
+ def create
8
+ voting_result.save
9
+ end
10
+
11
+ private
12
+
13
+ def voting_result_params
14
+ params.require(:voting_result).permit(:election_detail_id)
15
+ end
16
+ end
17
+ end
@@ -1,9 +1,9 @@
1
1
  module RailsVoter
2
- class BallotForm < ActiveRecord::Base
3
- has_many :ballot_form_details
2
+ class Election < ActiveRecord::Base
3
+ has_many :election_details
4
4
 
5
5
  accepts_nested_attributes_for(
6
- :ballot_form_details,
6
+ :election_details,
7
7
  reject_if: proc { |bfd| bfd["name"].blank? },
8
8
  allow_destroy: true
9
9
  )
@@ -0,0 +1,6 @@
1
+ module RailsVoter
2
+ class ElectionDetail < ActiveRecord::Base
3
+ belongs_to :election
4
+ has_many :voting_results
5
+ end
6
+ end
@@ -1,5 +1,18 @@
1
1
  module RailsVoter
2
2
  class VotingResult < ActiveRecord::Base
3
- belongs_to :ballot_form_detail
3
+ belongs_to :election_detail
4
+
5
+ scope :show, lambda { |election_id|
6
+ where(
7
+ "election_detail_id IN (?)", RailsVoter::Election.
8
+ find(election_id).
9
+ election_details.pluck(:id)
10
+ ).
11
+ group(:election_detail_id).
12
+ count.
13
+ sort_by { |_, v| v }.
14
+ reverse.
15
+ to_h
16
+ }
4
17
  end
5
18
  end
@@ -0,0 +1,12 @@
1
+ .navbar.navbar-default
2
+ .container
3
+ %button.navbar-toggle{ type: "button", 'data-toggle': "collapse", 'data-target': ".navbar-responsive-collapse" }
4
+ %span.icon-bar
5
+ %span.icon-bar
6
+ %span.icon-bar
7
+
8
+ %a.navbar-brand{ href: "/rails_voter" } Rails Voter
9
+ .navbar-collapse.collapse.navbar-responsive-collapse
10
+ %ul.nav.navbar-nav
11
+ %li= link_to "position 1", "#"
12
+ %li= link_to "position 2", "#"
@@ -0,0 +1,32 @@
1
+ !!! 5
2
+ %html{ lang: "en" }
3
+ %head
4
+ %meta{ charset: "utf-8" }
5
+ %meta{ 'http-equiv': "X-UA-Compatible", content: "IE=Edge,chrome=1" }
6
+ %meta{ name: "viewport", content: "width=device-width, initial-scale=1.0" }
7
+ %title= content_for?(:title) ? yield(:title) : "Rails Voter"
8
+ = csrf_meta_tags
9
+ = stylesheet_link_tag "rails_voter/application", media: "all"
10
+ = favicon_link_tag "apple-touch-icon-144x144-precomposed.png", rel: "apple-touch-icon-precomposed", type: "image/png", sizes: "144x144"
11
+ = favicon_link_tag "apple-touch-icon-114x114-precomposed.png", rel: "apple-touch-icon-precomposed", type: "image/png", sizes: "114x114"
12
+ = favicon_link_tag "apple-touch-icon-72x72-precomposed.png", rel: "apple-touch-icon-precomposed", type: "image/png", sizes: "72x72"
13
+ = favicon_link_tag "apple-touch-icon-precomposed.png", rel: "apple-touch-icon-precomposed", type: "image/png"
14
+ = favicon_link_tag "favicon.ico", rel: "shortcut icon"
15
+ = javascript_include_tag "rails_voter/application"
16
+ / Le HTML5 shim, for IE6-8 support of HTML elements
17
+ /[if lt IE 9]
18
+ = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"
19
+
20
+
21
+ %body
22
+ = render "layouts/rails_voter/menu"
23
+ .container
24
+ .row
25
+ .col-lg-9
26
+ / = bootstrap_flash
27
+ = yield
28
+ .col-lg-3
29
+ .well.sidebar-nav
30
+ %h3= t("stats")
31
+ %footer
32
+ %p &copy; Company 2016
@@ -1,4 +1,4 @@
1
- = f.fields_for :ballot_form_details do |bfd|
1
+ = f.fields_for :election_details do |bfd|
2
2
  %p
3
3
  = bfd.label :name
4
4
  = bfd.text_field :name
@@ -0,0 +1,9 @@
1
+ = form_for election do |f|
2
+ %p
3
+ = f.label t("rails_voter.election.name")
4
+ = f.text_field :name
5
+ %p
6
+ = render "election_detail_record", f: f
7
+ / = render "election_detail_record", f: f
8
+ %p
9
+ = f.submit
@@ -0,0 +1,8 @@
1
+ = link_to "add", new_election_path
2
+
3
+ - elections.each do |bf|
4
+ %p
5
+ = bf.name
6
+ = link_to "edit", edit_election_path(bf)
7
+ = link_to "vote", vote_election_path(bf)
8
+ = link_to "show result", show_result_election_path(bf)
@@ -0,0 +1,5 @@
1
+ %h2= election.name
2
+
3
+ - voting_result_show.each do |k, v|
4
+ %p
5
+ #{election_details.find(k).name} votes: #{v}
@@ -0,0 +1,9 @@
1
+ = election.name
2
+
3
+ = form_for voting_result do |f|
4
+ - election_details.each do |bfd|
5
+ %p
6
+ = f.label :election_detail_id, bfd.name
7
+ = f.radio_button :election_detail_id, bfd.id
8
+
9
+ = f.submit
@@ -0,0 +1,2 @@
1
+ %p
2
+ Thanks for voting!
@@ -1,4 +1,4 @@
1
1
  en:
2
2
  rails_voter:
3
- ballot_form:
4
- name: "Super Name ->"
3
+ election:
4
+ name: "Election title"
@@ -1,4 +1,4 @@
1
1
  pl:
2
2
  rails_voter:
3
- ballot_form:
4
- name: "Nazwa"
3
+ election:
4
+ name: "Tytuł Wyborów"
data/config/routes.rb CHANGED
@@ -1,5 +1,10 @@
1
1
  RailsVoter::Engine.routes.draw do
2
- resources :ballot_forms
2
+ resources :elections do
3
+ get "vote", on: :member
4
+ get "show_result", on: :member
5
+ end
3
6
 
4
- root to: 'ballot_forms#index'
7
+ resources :voting_results, only: [:create]
8
+
9
+ root to: "elections#index"
5
10
  end
@@ -0,0 +1,9 @@
1
+ class ChangeBallotFormName < ActiveRecord::Migration
2
+ def up
3
+ rename_table("rails_voter_ballot_forms", "rails_voter_elections")
4
+ end
5
+
6
+ def down
7
+ rename_table("rails_voter_elections", "rails_voter_ballot_forms")
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class ChangeBallotFormDetailName < ActiveRecord::Migration
2
+ def up
3
+ rename_table("rails_voter_ballot_form_details", "rails_voter_election_details")
4
+ end
5
+
6
+ def down
7
+ rename_table("rails_voter_election_details", "rails_voter_ballot_form_details")
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class ChangeBallotFormDetailIdName < ActiveRecord::Migration
2
+ def up
3
+ rename_column "rails_voter_voting_results", :ballot_form_detail_id, :election_detail_id
4
+ end
5
+
6
+ def down
7
+ rename_column "rails_voter_voting_results", :election_detail_id, :ballot_form_detail_id
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class ChangeBallotFormIdColumnName < ActiveRecord::Migration
2
+ def up
3
+ rename_column "rails_voter_election_details", :ballot_form_id, :election_id
4
+ end
5
+
6
+ def down
7
+ rename_column "rails_voter_election_details", :election_id, :ballot_form_id
8
+ end
9
+ end
data/db/seeds.rb CHANGED
@@ -1,26 +1,20 @@
1
1
  require "faker"
2
2
 
3
+ p "Remove seeds"
4
+ RailsVoter::VotingResult.destroy_all
5
+ RailsVoter::ElectionDetail.destroy_all
6
+ RailsVoter::Election.destroy_all
7
+
3
8
  separator = ">>>>>>>><<<<<<<<<<"
4
9
 
5
10
  p separator
6
11
 
7
- ballot_form_id = 0
8
- ballot_form_detail_id = 0
9
-
10
12
  5.times do
11
- ballot_form_id += 1
12
- RailsVoter::BallotForm.create(name: Faker::StarWars.planet)
13
-
13
+ bf = RailsVoter::Election.create(name: Faker::StarWars.planet)
14
14
  2.times do
15
- ballot_form_detail_id += 1
16
-
17
- RailsVoter::BallotFormDetail.create(
18
- name: Faker::StarWars.character,
19
- ballot_form_id: ballot_form_id
20
- )
21
-
15
+ bfd = bf.election_details.create(name: Faker::StarWars.character)
22
16
  3.times do
23
- RailsVoter::VotingResult.create(ballot_form_detail_id: ballot_form_detail_id)
17
+ bfd.voting_results.create
24
18
  end
25
19
  end
26
20
  end
@@ -29,3 +23,19 @@ message = "5 ballot forms, 10 ballot form details and 30 voting results created.
29
23
  p separator
30
24
  p message
31
25
  p separator
26
+
27
+ p "United States presidential election, 2016 seeds"
28
+
29
+ bf = RailsVoter::Election.create(name: "United States presidential election, 2016")
30
+
31
+ bfd = bf.election_details.create(name: "Hillary Clinton")
32
+ 4.times { bfd.voting_results.create }
33
+
34
+ bfd = bf.election_details.create(name: "Donald Trump")
35
+ 3.times { bfd.voting_results.create }
36
+
37
+ bfd = bf.election_details.create(name: "Gary Johnson")
38
+ 2.times { bfd.voting_results.create }
39
+
40
+ bfd = bf.election_details.create(name: "Jill Stein")
41
+ 2.times { bfd.voting_results.create }
@@ -1,5 +1,8 @@
1
1
  module RailsVoter
2
2
  class Engine < ::Rails::Engine
3
+ require "bootstrap-sass"
4
+ require "jquery-rails"
5
+
3
6
  isolate_namespace RailsVoter
4
7
 
5
8
  config.generators do |g|
@@ -1,3 +1,3 @@
1
1
  module RailsVoter
2
- VERSION = "0.0.3".freeze
2
+ VERSION = "0.1.0".freeze
3
3
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_voter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sunny Rails Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-25 00:00:00.000000000 Z
11
+ date: 2016-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 4.2.6
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 4.2.6
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: decent_exposure
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.0.0.beta2
33
+ version: 3.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.0.0.beta2
40
+ version: 3.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: draper
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,34 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bootstrap-sass
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 3.3.6
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 3.3.6
97
+ - !ruby/object:Gem::Dependency
98
+ name: jquery-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '4.1'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '4.1'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: sqlite3
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -220,6 +248,20 @@ dependencies:
220
248
  - - ">="
221
249
  - !ruby/object:Gem::Version
222
250
  version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: haml_lint
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
223
265
  description: ''
224
266
  email:
225
267
  - grafska@gmail.com
@@ -231,20 +273,28 @@ files:
231
273
  - Rakefile
232
274
  - app/assets/javascripts/rails_voter/application.js
233
275
  - app/assets/javascripts/rails_voter/ballot_forms.js
234
- - app/assets/stylesheets/rails_voter/application.css
276
+ - app/assets/javascripts/rails_voter/voting_results.js
277
+ - app/assets/stylesheets/rails_voter/application.scss
235
278
  - app/assets/stylesheets/rails_voter/ballot_forms.css
279
+ - app/assets/stylesheets/rails_voter/voting_results.css
236
280
  - app/controllers/rails_voter/application_controller.rb
237
- - app/controllers/rails_voter/ballot_forms_controller.rb
281
+ - app/controllers/rails_voter/elections_controller.rb
282
+ - app/controllers/rails_voter/voting_results_controller.rb
238
283
  - app/helpers/rails_voter/application_helper.rb
239
- - app/models/rails_voter/ballot_form.rb
240
- - app/models/rails_voter/ballot_form_detail.rb
284
+ - app/models/rails_voter/election.rb
285
+ - app/models/rails_voter/election_detail.rb
241
286
  - app/models/rails_voter/voting_result.rb
242
- - app/views/layouts/rails_voter/application.html.erb
243
- - app/views/rails_voter/ballot_forms/_ballot_form_detail_record.html.haml
244
- - app/views/rails_voter/ballot_forms/_form.html.haml
245
- - app/views/rails_voter/ballot_forms/edit.html.haml
246
- - app/views/rails_voter/ballot_forms/index.html.haml
247
- - app/views/rails_voter/ballot_forms/new.html.haml
287
+ - app/views/layouts/rails_voter/_menu.html.haml
288
+ - app/views/layouts/rails_voter/aaaapplication.html.erb
289
+ - app/views/layouts/rails_voter/application.html.haml
290
+ - app/views/rails_voter/elections/_election_detail_record.html.haml
291
+ - app/views/rails_voter/elections/_form.html.haml
292
+ - app/views/rails_voter/elections/edit.html.haml
293
+ - app/views/rails_voter/elections/index.html.haml
294
+ - app/views/rails_voter/elections/new.html.haml
295
+ - app/views/rails_voter/elections/show_result.html.haml
296
+ - app/views/rails_voter/elections/vote.html.haml
297
+ - app/views/rails_voter/voting_results/create.html.haml
248
298
  - config/locales/en.yml
249
299
  - config/locales/pl.yml
250
300
  - config/routes.rb
@@ -253,6 +303,10 @@ files:
253
303
  - db/migrate/20160607180028_add_ref_to_ballot_form_details.rb
254
304
  - db/migrate/20160608141052_create_rails_voter_voting_results.rb
255
305
  - db/migrate/20160608145149_add_ref_to_rails_voter_voting_result.rb
306
+ - db/migrate/20160707113355_change_ballot_form_name.rb
307
+ - db/migrate/20160707114814_change_ballot_form_detail_name.rb
308
+ - db/migrate/20160707131546_change_ballot_form_detail_id_name.rb
309
+ - db/migrate/20160707143841_change_ballot_form_id_column_name.rb
256
310
  - db/seeds.rb
257
311
  - lib/generators/rails_voter/install/install_generator.rb
258
312
  - lib/generators/rails_voter/install/templates/seeds.rb
@@ -1,36 +0,0 @@
1
- require_dependency "rails_voter/application_controller"
2
-
3
- module RailsVoter
4
- class BallotFormsController < ApplicationController
5
- expose :ballot_forms, -> { BallotForm.all }
6
- expose :ballot_form, model: RailsVoter::BallotForm
7
-
8
- def new
9
- 10.times do
10
- ballot_form.ballot_form_details.new
11
- end
12
- end
13
-
14
- def create
15
- if ballot_form.save
16
- redirect_to ballot_forms_path
17
- else
18
- render :new
19
- end
20
- end
21
-
22
- def update
23
- if ballot_form.update(ballot_form_params)
24
- redirect_to ballot_forms_path
25
- else
26
- render :new
27
- end
28
- end
29
-
30
- private
31
-
32
- def ballot_form_params
33
- params.require(:ballot_form).permit(:name, ballot_form_details_attributes: [:name, :id])
34
- end
35
- end
36
- end
@@ -1,6 +0,0 @@
1
- module RailsVoter
2
- class BallotFormDetail < ActiveRecord::Base
3
- belongs_to :ballot_form
4
- has_many :voting_results
5
- end
6
- end
@@ -1,9 +0,0 @@
1
- = form_for ballot_form do |f|
2
- %p
3
- = f.label t('rails_voter.ballot_form.name')
4
- = f.text_field :name
5
- %p
6
- = render 'ballot_form_detail_record', f: f
7
- / = render 'ballot_form_detail_record', f: f
8
- %p
9
- = f.submit
@@ -1,6 +0,0 @@
1
- = link_to 'add', new_ballot_form_path
2
-
3
- - ballot_forms.each do |bf|
4
- %p
5
- = bf.name
6
- = link_to 'edit', edit_ballot_form_path(bf)