[英]Ruby on Rails, method undefined
我是红宝石的新手。 我正在尝试创建一个文本字段来分配我的变量之一(end_date),但我一直收到此错误:
undefined method `end_date' for #<Quiz:0x007fccd1e0f9c0>
这是我的代码:
<%# Main Canvas where cardes places %>
<div class="column large-11" id="main">
<%= form_for @quiz do |q| %>
<%= q.label :quiz_name %>
<%= q.text_field :quiz_name %>
<%= q.label :end_date %>
<%= q.text_field :end_date %>
<%= hidden_field_tag 'selected', 'none' %>
<%= q.hidden_field :classroom_id, value: @classroom_id%>
<%= q.submit "Create Quiz", class: "expanded button" %>
<% end %>
<%= form_tag("/quiz/#{@classroom_id}/copy", method: "get") do %>
<%= label :id, "ID" %>
<%= text_field_tag "id", "" %>
<%= submit_tag "Copy Quiz By ID", class: "expanded button" %>
<% end %>
</div>
让我分解一下这些不同部分之间的相互关系,希望它们可以使您更轻松地进行故障排除。
<%= form_for @quiz do |q| %>
在这里,您要调用form_for
来创建绑定到@quiz
对象的表单。 它产生一个表单生成器对象作为参数q
。
<%= q.text_field :quiz_name %>
在这里,您正在使用名为quiz_name
的字段在表单生成器上调用text_field
方法。 这意味着它会生成一个文本输入,并调用quiz_name
的方法@quiz
查找当前值。
因此,在这种背景下,应该清楚为什么会看到此错误:
<%= q.text_field :end_date %>
您正在告诉表单构建器调用@quiz.end_date
作为该字段的值,但是该方法不存在。
您没有为我们提供足够的代码示例来确定为什么希望这种方法存在。 也许这是您已添加到测验表中的字段,但尚未运行迁移? 这应该是Quiz
的虚拟属性吗? 或者,也许您只想发送此表单中未连接到Quiz
模型的字段。 (您可以使用单独的一组帮助器(在本例中为text_field_tag
来完成此操作),以使您更加灵活地选择数据的来源)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.