Ruby-on-rails形成_的奇特外观
(唯一的区别是,在第二个版本中,我尝试使用parens()调用form_form,而在第一个示例中,我没有使用parens。)我知道我可以清理我这样做的方式,但这已被另一个线程覆盖 这项工作:Ruby-on-rails形成_的奇特外观,ruby-on-rails,Ruby On Rails,(唯一的区别是,在第二个版本中,我尝试使用parens()调用form_form,而在第一个示例中,我没有使用parens。)我知道我可以清理我这样做的方式,但这已被另一个线程覆盖 这项工作: <%= form_for (@quiz_attempt.blank? ? QuizAttempt.new(:patient_id => current_user.id, :started => Time.now.utc, :step_quiz_id => @course_step
<%= form_for (@quiz_attempt.blank? ? QuizAttempt.new(:patient_id => current_user.id, :started => Time.now.utc, :step_quiz_id => @course_step.step.step_quiz.id) : @quiz_attempt), :url => submit_quiz_course_course_step_path(@course_step.course, @course_step) do |f| %>
current_user.id,:start=>Time.now.utc,:step_quick_id=>@course_step.step.step_quick.id:@quick_trust),:url=>submit_quick_course_course_step_路径(@course_step,@course_step)do | f |%>
但事实并非如此:(尝试将form_for with用作form_for()的函数)
current_user.id,:start=>Time.now.utc,:step_quick_id=>@course_step.step.step_quick.id:@quick_trunt),:url=>submit_quick_course_course_step_路径(@course_step,@course_step))do | f |%>
错误
ERROR:/Users/cmuench/rails_projects/infosurge/app/views/course_steps/show_quiz.html.erb:10: syntax error, unexpected ',', expecting ')'
...step_quiz.id) : @quiz_attempt), :url => submit_quiz_course_c...
... ^
/Users/cmuench/rails_projects/infosurge/app/views/course_steps/show_quiz.html.erb:10: syntax error, unexpected ')', expecting keyword_end
...rse_step.course, @course_step)) do |f| @output_buffer.safe_c...
... ^
/Users/cmuench/rails_projects/infosurge/app/views/course_steps/show_quiz.html.erb:27: syntax error, unexpected keyword_ensure, expecting $end
Extracted source (around line #10):
7: <p><%= @course_step.step.step_quiz.instructions %> </p>
8: </div>
9: <div id="Quiz">
10: <%= form_for ((@quiz_attempt.blank? ? QuizAttempt.new(:patient_id => current_user.id, :started => Time.now.utc, :step_quiz_id => @course_step.step.step_quiz.id) : @quiz_attempt), :url => submit_quiz_course_course_step_path(@course_step.course, @course_step)) do |f| %>
11: <%= render :partial => 'shared/error_messages', :object => f.object %>
12: <% @course_step.step.step_quiz.step_quiz_questions.each do |quiz_question| %>
13: <h3><%= quiz_question.value %></h3>
Trace of template inclusion: app/views/course_steps/show_quiz.html.erb
ERROR:/Users/cmuench/rails_projects/infosurge/app/views/course_steps/show_quick.html.erb:10:语法错误,意外',',预期''
…步骤\u quick.id):@quick\u trunt),:url=>提交\u quick\u课程\u c。。。
... ^
/Users/cmuench/rails_projects/infosurge/app/views/course_steps/show_quick.html.erb:10:语法错误,意外“),应为关键字“end”
…rse|u step.course,@course|u step))do | f |@output|u buffer.safe|c。。。
... ^
/Users/cmuench/rails\u projects/infosurge/app/views/course\u steps/show\u quick.html.erb:27:语法错误,意外关键字\u sure,应为$end
提取的源(第10行附近):
7:
8:
9:
10:current_user.id,:start=>Time.now.utc,:step_quick_id=>@course_step.step.step_quick.id:@quick_trunt),:url=>提交_quick_course_course_step_路径(@course_step.course,@course_step))do | f |%>
11:'共享/错误消息',:object=>f.object%>
12:
13:
模板包含跟踪:app/views/course\u steps/show\u quick.html.erb
我不知道为什么解析器无法识别您试图执行的操作
与其尝试映射ruby解析器的所有复杂之处,为什么不尝试使代码可读
最简单的方法可能是使用| |=
运算符,并将此逻辑移到控制器中
比较第一个示例的扩展形式:
Controller:
Not Shown
View:
<%= form_for (
(@quiz_attempt.blank? ?
QuizAttempt.new(
:patient_id => current_user.id,
:started => Time.now.utc,
:step_quiz_id => @course_step.step.step_quiz.id) :
@quiz_attempt
),
:url => submit_quiz_course_course_step_path(@course_step.course, @course_step)
) do |f| %>
控制器:
未显示
视图:
当前_user.id,
:started=>Time.now.utc,
:step\u quick\u id=>@course\u step.step.step\u quick.id):
@小测验
),
:url=>提交测验课程步骤路径(@course\u step.course,@course\u step)
)do | f |%>
致:
控制器:
#... 相关行动接近尾声
@测验| | |=QuizAttempt.new(:patient_id=>current_user.id,
:started=>Time.now.utc,
:step\u quick\u id=>@course\u step.step.step\u quick.id)
视图:
提交测验课程步骤路径(@course\u step.course,@course\u step)do | f |%>
这样,您就可以使用无帕伦斯风格,而不会让混乱的?:
位堵塞一切
希望有帮助
*顺便说一句,以下是: 我认为出了什么问题
form\u for()
不一定与form\u for()
相同,因此可能会混淆您是否要说
使用的结果调用的表单#(@quick\u trunt,:url=>url)#这是无效语法
或
“用参数调用form_
(@quick\u-trunt,{:url=>url})#这就是真正的参数的样子
这几乎完全是你上一个问题的翻版,任何合适的答案都会复制你在另一个问题中给出的答案。
Controller:
Not Shown
View:
<%= form_for (
(@quiz_attempt.blank? ?
QuizAttempt.new(
:patient_id => current_user.id,
:started => Time.now.utc,
:step_quiz_id => @course_step.step.step_quiz.id) :
@quiz_attempt
),
:url => submit_quiz_course_course_step_path(@course_step.course, @course_step)
) do |f| %>
Controller:
#... near the end of the relevant action
@quiz_attempt ||= QuizAttempt.new(:patient_id => current_user.id,
:started => Time.now.utc,
:step_quiz_id => @course_step.step.step_quiz.id)
View:
<%= form_for @quiz_attempt, :url =>
submit_quiz_course_course_step_path(@course_step.course, @course_step) do |f| %>