我有兩個使用生成腳手架生成的模型,一個是LogBook,另一個是LogEntry。我想在LogBook顯示頁面上爲LogEntry呈現部分表單。當我打電話渲染上部分我得到這個錯誤:在不同的控制器中渲染窗體部分(不嵌套)
undefined method `model_name' for NilClass:Class
我想這是因爲默認_form使用不是由單獨的控制器調用時存在的實例變量。所以我嘗試將LogEntry _form.html.erb轉換爲使用局部變量並通過render調用傳遞給它們。之後這裏是錯誤:
Model LogEntry does not respond to Text
我怎樣才能包括這部分到顯示頁面形式不同的控制器?
型號:
class LogBook < ActiveRecord::Base
belongs_to :User
has_many :LogEntries, :dependent => :destroy
end
class LogEntry < ActiveRecord::Base
belongs_to :LogBook, :class_name => "log_book", :foreign_key => "log_book_id"
end
LogEntry _form.html.erb(使用局部變量):
<%= form_for(log_entry) do |f| %>
<% if log_entry.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(log_entry.errors.count, "error") %> prohibited this log_entry from being saved:</h2>
<ul>
<% log_entry.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :Text %><br />
<%= f.text_field :Text %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
記錄簿show.html.erb:
<p id="notice"><%= notice %></p>
<p>
<b>Name:</b>
<%= @log_book.name %>
</p>
<%= render 'log_entries/form', :log_entry => @log_book.LogEntries.new %>
<%= link_to 'Edit', edit_log_book_path(@log_book) %> |
<%= link_to 'Back', log_books_path %>
原來是這樣的:文本錯誤導致了問題,謝謝! – vfilby 2011-05-31 17:45:34
在提交表單時,@apneadiving會使用日誌條目控制器嗎? – BKSpurgeon 2016-08-11 04:52:43