ruby 3.1.1, Rails 6.1.4
我的rails表单有问题。我用的是“form_for”和几个单选按钮表单元素。表单提交,但单选按钮元素的值显示为"0“。我不知道我做错了什么。
我的应用程序的这一部分被命名为空格: root/living_muay_thai/
Migration:
class CreateLivingMuayThaiSummitSurveys < ActiveRecord::Migration[6.1]
def change
create_table :living_muay_thai_summit_surveys do |t|
t.string :question_1 # radio button
t.string :question_2 # radio button
t.text :question_3
t.text :question_4
t.text :question_5
t.timestamps
end
end
end
Controller
class LivingMuayThai::SummitSurveysController < ApplicationController
...
def new
@summit_survey = LivingMuayThai::SummitSurvey.new
end
def create
survey = LivingMuayThai::SummitSurvey.new(summit_survey_params)
if survey.save
flash[:notice]="Your survey has been submitted"
redirect_to(living_muay_thai_summit_surveys_thank_you_url)
else
flash[:notice]="Sorry, your survey could not be saved. Try Again?"
redirect_to( new_living_muay_thai_summit_survey_url)
end
end
...
def summit_survey_params
params.require(:living_muay_thai_summit_survey).permit(:question_1, :question_2, :question_3,:question_4, :question_5)
end
end
Form
<%= form_for(@summit_survey) do |f| %>
<div class="grid-x">
<div class="cell medium-12">
<label for="problem"><strong>
1) How likely are you to attend a future LMT Summit?
</strong></label>
</div>
</div>
<div class="grid-x">
<div class="medium-5">
<%= f.radio_button :question_1, 'One' %> <label>One</label><br />
<%= f.radio_button :question_1, 'Two' %> <label>Two</label><br />
<%= f.radio_button :question_1, 'Three' %> <label>Three</label><br />
<%= f.radio_button :question_1, 'Four' %> <label>Four</label><br />
<%= f.radio_button :question_1, 'Five' %> <label>Five</label>
</div>当我在浏览器中查看源代码或检查radio_button元素时,这一切似乎都是正确的:
<input type="radio" value="One" name="living_muay_thai_summit_survey[question_1]" id="living_muay_thai_summit_survey_question_1_one" /> <label>One</label><br />
<input type="radio" value="Two" name="living_muay_thai_summit_survey[question_1]" id="living_muay_thai_summit_survey_question_1_two" /> <label>Two</label><br />
<input type="radio" value="Three" name="living_muay_thai_summit_survey[question_1]" id="living_muay_thai_summit_survey_question_1_three" /> <label>Three</label><br />
<input type="radio" value="Four" name="living_muay_thai_summit_survey[question_1]" id="living_muay_thai_summit_survey_question_1_four" /> <label>Four</label><br />
<input type="radio" value="Five" name="living_muay_thai_summit_survey[question_1]" id="living_muay_thai_summit_survey_question_1_five" /> <label>Five</label>当我提交一份记录,我没有错误。但是当我在控制台中查看记录时,我看到"0“和"0”表示'question_1‘和’问题2‘,而不是我输入的“1”和“2”。
s=LivingMuayThai::SummitSurvey.last
:010 > s
#<LivingMuayThai::SummitSurvey:0x00007f66b66a4c20
id: 7,
question_1: "0",
question_2: "0",
question_3: "test 3",
question_4: "test 4",
question_5: "test 5",
created_at: Mon, 17 Oct 2022 16:12:17.047229000 EDT -04:00,
updated_at: Mon, 17 Oct 2022 16:12:17.047229000 EDT -04:00>知道我做错什么了吗?我的“猜测”是表单上的radio_button代码中的某些内容,但正如我注意到的,它似乎是正确的。
发布于 2022-10-17 23:07:44
我已经开始工作了。我重写了我表格上的单选按钮,从头开始,还有中提琴!开始起作用了。我比较了新旧代码,看不出有什么不同,但它有效。
耸耸肩。
谢谢你找我!
https://stackoverflow.com/questions/74103158
复制相似问题