Ruby on rails 在不同的控制器(非嵌套)中渲染表单部分

Ruby on rails 在不同的控制器(非嵌套)中渲染表单部分,ruby-on-rails,ruby-on-rails-3,partials,Ruby On Rails,Ruby On Rails 3,Partials,我有两个生成脚手架的模型,一个是日志,另一个是日志条目。我想在日志显示页面上为日志条目呈现部分表单。在局部调用render时,出现以下错误: undefined method `model_name' for NilClass:Class 我假设这是因为默认的_表单使用了一个实例变量,当从单独的控制器调用时,该变量不存在。因此,我尝试将LogEntry _form.html.erb转换为使用局部变量,并通过render调用传递它们。在此之后是错误: Model LogEntry does no

我有两个生成脚手架的模型,一个是日志,另一个是日志条目。我想在日志显示页面上为日志条目呈现部分表单。在局部调用render时,出现以下错误:

undefined method `model_name' for NilClass:Class
我假设这是因为默认的_表单使用了一个实例变量,当从单独的控制器调用时,该变量不存在。因此,我尝试将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
class日志:destroy
结束
类LogEntry“日志”,:外键=>“日志id”
结束
LogEntry\u form.html.erb(使用局部变量):


禁止保存此日志\u条目:

日志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 %>

姓名:

@日志\ book.LogEntries.new%> |
尝试按如下方式切换渲染方法:

<%= render :partial => 'log_entries/form', :log_entry => @log_book.LogEntries.new %>
'log\u entries/form',:log\u entry=>@log\u book.LogEntries.new%>

当传递对象的实例变量时,使用“仅渲染”有效。但是,由于您指定的是文件,因此最好使用该选项。

您可以渲染所需的任何部分,只要从视图文件夹中指定其路径:

 <%= render :partial => '/log_entries/form', :log_entry => @log_book.log_entries.build %>

不应是模型的有效列名。Try:text

@apreading提交表单时,是否会使用日志条目控制器?
 <%= render :partial => '/log_entries/form', :log_entry => @log_book.log_entries.build %>
 :Text