Ruby on rails RubyonRails,方法未定义
我对RubyonRails非常陌生。我试图创建一个文本字段来分配我的一个变量(end_date),但我一直遇到以下错误: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
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”添加到您的测验模型文件中,以设置虚拟属性。谢谢大家!我错误地试图手动将属性添加到一个已经存在的模型中–哎哟!