Rails是一种基于Ruby语言的开发框架,用于构建Web应用程序。它提供了一种简单且高效的方式来处理表单提交,包括调查提交表单。在Rails中,可以使用模型、视图和控制器来实现这个功能。
要将问题和答案呈现为输入字段,可以按照以下步骤进行操作:
rails generate model Question content:string
rails generate model Answer content:string question:references
rails db:migrate
has_many
关联答案模型。
class Question < ApplicationRecord
has_many :answers
end
belongs_to
关联问题模型。
class Answer < ApplicationRecord
belongs_to :question
end
<%= form_with(model: @question, url: questions_path, method: :post) do |form| %>
<% @questions.each do |question| %>
<div class="question">
<%= form.label question.content %>
<%= form.text_field :answers_attributes, name: "question[answers_attributes][#{question.id}][content]" %>
</div>
<% end %>
<%= form.submit "提交" %>
<% end %>
上述代码中,使用form_with
方法创建一个表单,并使用form.label
和form.text_field
方法生成问题和答案的输入字段。answers_attributes
参数用于指定答案模型的属性,question[answers_attributes][#{question.id}][content]
用于生成正确的表单字段名称。
create
动作中创建问题和答案的记录。
def create
@question = Question.new(question_params)
if @question.save
redirect_to questions_path, notice: "提交成功"
else
render :new
end
end
private
def question_params
params.require(:question).permit(answers_attributes: [:content])
end
上述代码中,使用question_params
方法来过滤和允许答案模型的属性,防止不必要的参数传递。
resources :questions, only: :index, :new, :create
这样,就完成了将问题和答案呈现为输入字段的操作。
Rails的优势在于其简洁的语法和丰富的生态系统,使得开发人员可以快速构建功能强大的Web应用程序。它适用于各种规模的项目,并且具有良好的可扩展性和可维护性。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云数据库MySQL版、腾讯云对象存储(COS)等。您可以访问腾讯云官方网站获取更多关于这些产品的详细信息和介绍。
以上是关于Rails调查提交表单没有将问题和答案呈现为输入字段的完善且全面的答案。
领取专属 10元无门槛券
手把手带您无忧上云