简体   繁体   English

使用Ruby on Rails App中的单选按钮在MySQL表中创建记录

[英]Create record in MySQL table using Radio Buttons in Ruby on Rails App

I have created a fantasy golf App and I want the user to create an entry in the scores table by selecting golfers by selecting their radio buttons (Pick one golfer from each group basically). 我已经创建了一个幻想高尔夫应用程序,我希望用户通过选择其单选按钮(基本上是从每个组中选择一个高尔夫球手)来选择高尔夫球手,从而在得分表中创建一个条目。 Here is a section of the form. 这是表格的一部分。

Golfpicks.html Golfpicks.html

            <% provide(:title, 'Golfers Picks') %>
             <%= form_for Score.new do |f| %>
                <h2>Pool 1</h2>
                <ul class="users">
                <%= field_set_tag do %>
                  <%= render Golfer.where(:golferid => 1) %>
                  <%= f.radio_button :golferidgroup1, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 2) %>
                  <%= f.radio_button :golferidgroup1, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 3) %>
                  <%= f.radio_button :golfergroupid1, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 4) %>
                  <%= f.radio_button :golfergroupid1, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 5) %>
                  <%= f.radio_button :golfergroupid1, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 6) %>
                  <%= f.radio_button :golfergroupid1, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 7) %>
                  <%= f.radio_button :golfergroupid1, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 8) %>
                  <%= f.radio_button :golfergroupid1, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 9) %>
                  <%= f.radio_button :golfergroupid1, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 10) %>
                  <%= f.radio_button :golfergroupid1, false, :checked => true %>
                  <% end %>
                </ul>
                <h2>Pool 2</h2>
                <ul class="users">
                <%= field_set_tag do  %>
                  <%= render Golfer.where(:golferid => 11) %>
                  <%= f.radio_button :golferidgroup2, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 12) %>
                  <%= f.radio_button :golfergroupid2, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 13) %>
                  <%= f.radio_button :golfergroupid2, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 14) %>
                  <%= f.radio_button :golfergroupid2, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 15) %>
                  <%= f.radio_button :golfergroupid2, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 16) %>
                  <%= f.radio_button :golfergroupid2, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 17) %>
                  <%= f.radio_button :golfergroupid2, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 18) %>
                  <%= f.radio_button :golfergroupid2, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 19) %>
                  <%= f.radio_button :golfergroupid2, false, :checked => true %>
                  <%= render Golfer.where(:golferid => 20) %>
                  <%= f.radio_button :golfergroupid2, false, :checked => true %>
                <% end %>
                </ul>
                <% end %>
                </ul> 
                <%= f.submit "Enter my Team", class: "btn btn-primary" %>
            <% end %>   

Here is my scores Helper 这是我的分数助手

        class ScoresController < ApplicationController

              def index
                @scores = Score.paginate(page: params[:page])
              end

                 def create
                @score = Score.new(params[:score])    

                if @score.save
                  # Handle a successful save.
                else
                  render 'new'
                end
              end 

              private

                def user_params
                  params.require(:score).permit(:golferid1, :golferid2, :golferid3,
                                               :golferid4, :golferid5, :golferid6)
                end

              end

I need to record the golderid which will be taken from the golfers table add to the records in the score table. 我需要记录从高尔夫球手表中获取的golderid,并将其添加到得分表中的记录中。 This is the tricky part for me. 这对我来说是棘手的部分。 I also need to store the Users id which could be taken from their login and record that in the scores record as well. 我还需要存储可从其登录名获取的用户ID,并将其记录在分数记录中。

Golfers table 高尔夫球手表

            golfers (
            golferid INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
            firstname VARCHAR(30) NOT NULL,
            secondtname VARCHAR(30) NOT NULL,
            country VARCHAR(50),
            worldranking int(3),
            tournamentposition int(2),
            group1 boolean,
            group2 boolean,
            group3 boolean,
            group4 boolean,
            group5 boolean,
            group6 boolean,
            day1score int(2),
            day2score int(2),
            day3score int(2),
            day4score int(2),
            totalscore int(3),
            golfscoretotal int(3)
            );

Scores table 分数表

            scoreid int(6) UN AI PK 
            userid int(11) 
            golfergroupid1 int(6) 
            golfscoretotal1 int(3) 
            golfergroupid2 int(6) 
            golfscoretotal2 int(3) 
            golfergroupid3 int(6) 
            golfscoretotal3 int(3) 
            golfergroupid4 int(6) 
            golfscoretotal4 int(3) 
            golfergroupid5 int(6) 
            golfscoretotal5 int(3) 
            golfergroupid6 int(6) 
            golfscoretotal6 int(3) 
            totalscore int(4)

Golfers Model in RoR RoR中的高尔夫球手模型

            class Golfer < ActiveRecord::Base
            belongs_to :score 

            end

Scores Model in RoR RoR分数模型

            class Score < ActiveRecord::Base
            belongs_to :user

            end

Any help would be greatly appreciated. 任何帮助将不胜感激。 Im stuck on this issue now for a few days. 我现在在这个问题上停留了几天。

Rgrds Dave Rgrds戴夫

You can do something like this: 您可以执行以下操作:

<% {1 => 1, 2 => 11}.each_pair do |pull_no, start_no| %>
  <h2> <%= "Pool #{pull_no}"  %></h2>
  <ul class="users">
    <%= field_set_tag do %>
      <%= f.hidden_field :("golferidgroup#{pull_no}"), nil %>
      <% 10.times do |i| %>
        <%= render Golfer.where(:golferid => start_no + i) %>
        <%= f.radio_button :("golferidgroup#{pull_no}"), start_no + i, :checked => false %>
      <% end %>
    <% end %>
  </ul>
<% end %>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM