rails_voter 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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)