ruby-on-rails - 将数据从单选按钮发送到控制器以验证 Rails 中的嵌套属性值
问题描述
我需要radio button
将从html
页面中选择的值发送到controller
. 我有一个与模型Question
有has_many
关系的Option
模型。我现在的做法是这样的:
html.erb
<p>
<strong>Body:</strong>
<%= @question.body %>
</p>
<p>
<strong>Option:</strong>
<% @question.options.each do |p| %>
<%= radio_button_tag('option',p.is_answer) %>
<%= p.body %>
<% end %>
</p>
<p><%= link_to 'Check Answer', check_answer_question_path(@question) %></p>
<p>
<strong>User:</strong>
<%= @question.user.email %>
</p>
楷模
class Question < ApplicationRecord
belongs_to :user
has_many :options, dependent: :delete_all, :autosave => true
serialize :options
validates_length_of :options, maximum: 4
accepts_nested_attributes_for :options
end
class Option < ApplicationRecord
belongs_to :question
validates_associated :question
end
控制器
def check_answer
bool_value = p.is_answer
if(p.is_answer == true)
do something
else
do something else
end
end
private
def set_question
@question = Question.find(params[:id])
end
def question_params
params.require(:question).permit(:body, options_attributes: [:id, :body, :question_id, :created_at, :updated_at, :is_answer])
end
如何在控制器中获取p.is_answer
选择单选按钮并单击按钮时的值Check Answer
?
解决方案
推荐阅读
- jmeter - 每次迭代中的相同用户是否引用相同的 IP 地址
- python - pandas 的列表理解:如果 pandas 中的列包含字符串,则返回一个带有字符串的新列
- excel - Excel VBA Partial sheet locking and no option for copy, paste, undo
- php - MySql查询根据时间戳获取结果
- r - 将特定值分配为 NA
- excel - Excel 数据透视表,过滤基于公式的值
- java - 没有“org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory”类型的合格bean
- python - python将嵌套数据转换为数组
- python - 当条件为真时如何对熊猫列的值求和(Python)
- laravel - Laravel - 将贝宝付款链接到订单 ID