Ruby on rails RubyonRails,方法未定义

Ruby on rails RubyonRails,方法未定义,ruby-on-rails,ruby,Ruby On Rails,Ruby,我对RubyonRails非常陌生。我试图创建一个文本字段来分配我的一个变量(end_date),但我一直遇到以下错误: undefined method `end_date' for #<Quiz:0x007fccd1e0f9c0> <%= q.text_field :end_date %> 未定义的方法“结束日期”# 这是我的密码: <%# Main Canvas where cardes places %> <div class="colum

我对RubyonRails非常陌生。我试图创建一个文本字段来分配我的一个变量(end_date),但我一直遇到以下错误:

undefined method `end_date' for #<Quiz:0x007fccd1e0f9c0>
<%= q.text_field :end_date %>
未定义的方法“结束日期”#
这是我的密码:

<%# 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| %>
在这里,您使用名为
quick\u name
的字段调用表单生成器上的方法。这意味着它将生成一个文本输入,并调用
@quick
上的
quick\u name
方法来查找当前值

因此,在这样的背景下,您应该清楚为什么会看到这个错误:

undefined method `end_date' for #<Quiz:0x007fccd1e0f9c0>
<%= q.text_field :end_date %>

您正在告诉表单生成器调用
@quick.end_date
获取此字段的值,但该方法不存在


您没有提供足够的代码示例,我们无法确定您希望此方法存在的原因。也许这是您添加到测验表中的字段,但尚未运行迁移?这应该是
测验中的虚拟属性吗?或者,您可能只想发送一个未连接到此表单中的
测验
模型的字段。(在本例中,您可以使用一组单独的帮助程序来实现这一点,这使您能够更灵活地了解数据的来源)。

让我详细分析一下这些不同的部分是如何相互关联的,希望这将使您更容易进行故障排除

<%= form_for @quiz do |q| %>
在这里,您使用名为
quick\u name
的字段调用表单生成器上的方法。这意味着它将生成一个文本输入,并调用
@quick
上的
quick\u name
方法来查找当前值

因此,在这样的背景下,您应该清楚为什么会看到这个错误:

undefined method `end_date' for #<Quiz:0x007fccd1e0f9c0>
<%= q.text_field :end_date %>

您正在告诉表单生成器调用
@quick.end_date
获取此字段的值,但该方法不存在


您没有提供足够的代码示例,我们无法确定您希望此方法存在的原因。也许这是您添加到测验表中的字段,但尚未运行迁移?这应该是
测验中的虚拟属性吗?或者,您可能只想发送一个未连接到此表单中的
测验
模型的字段。(在本例中,您可以使用一组单独的帮助器来实现这一点,这使您能够更灵活地确定数据的来源)。

测验模型是否具有属性
结束日期
?塞巴斯蒂安基本上是在问,测验是否有结束日期列?如果是这样的话,active_记录将自动为您创建一个getter/setter。如果结束日期不是一个列,而是一些要处理和传递的表单数据,您可以将“attr\u accessor:end\u date”添加到您的测验模型文件中,以设置虚拟属性。谢谢大家!我错误地试图手动将属性添加到一个已经存在的模型中–哎哟!测验模型是否具有属性
结束日期
?Sebastian基本上在问,测验是否有结束日期列?如果是这样的话,active_记录将自动为您创建一个getter/setter。如果结束日期不是一个列,而是一些要处理和传递的表单数据,您可以将“attr\u accessor:end\u date”添加到您的测验模型文件中,以设置虚拟属性。谢谢大家!我错误地试图手动将属性添加到一个已经存在的模型中–哎哟!