我正在开发一款旨在成为调查猴子的粗略克隆的应用程序。
调查作为“模板”,提交是对该调查模板的回复。
我有一个显示页面,可以显示新提交的表单。我有正确的调查模板和我需要的相关模型/属性(在pry中确认),但我无法获得任何相关的问题和答案作为表单输入字段呈现。
before_action :set_survey, except: [:index, :new, :create, :home, :mysurveys]
def show
@survey.submissions.build
end
private
def survey_params
params[:survey].permit(:user_id, :title, questions_attributes: [:id, :prompt, :_destroy, answers_attributes: [:id, :content, :_destroy]])
end
def set_survey
@survey = Survey.find(params[:id])
end
<h1>This is the show page for surveys.</h1>
<h3><%= @survey.title %></h3>
<% if current_user == @survey.user_id %>
<%= render "mysurvey" %>
<% else %>
<%= render 'survey_form' %>
<% end %>
<%= form_for @survey do |f| %>
<% @survey.questions.each do |q| %>
<%= q.prompt %>
<%= f.text_field %>
<% q.answers.each do |a| %>
<%= a.content %>
<%= f.text_field %>
<% end %>
<% end %>
<% end %>
我已尝试f.text_field :q
,:questions
,:prompt
q.prompt
。 Rails只返回undefined method
。
答案 0 :(得分:1)
您的show.html.erb
<h1>This is the show page for surveys.</h1>
<h3><%= @survey.title %></h3>
<% if current_user == @survey.user_id %>
<% render "mysurvey" %>
<% else %>
<% render 'survey_form' %>
<% end %>
应该是什么样的
<h1>This is the show page for surveys.</h1>
<h3><%= @survey.title %></h3>
<% if current_user == @survey.user_id %>
<%= render "mysurvey" %>
<% else %>
<%= render 'survey_form' %>
<% end %>