簡體   English   中英

Ruby on Rails,方法未定義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM