渲染动作

时间:2012-08-06 08:18:38

标签: ruby-on-rails ruby-on-rails-3

我正在尝试在我的application.html.erb布局文件中渲染一个动作,以使用一些jquery脚本将其显示为模式框。我听说我可以使用render :template => 'spots/new',但看起来这个方法不是渲染动作而只是视图文件。

点#新

def new
  @spot = Spot.new
end

new.html.erb

<%= form_for(@spot) do |f| %>
...
<% end %>

问题在于,当我尝试使用spots#new呈现render :template => 'spots/new'时,我收到undefined method 'model_name' for NilClass:Class错误。你知道我做错了什么吗?提前致谢

1 个答案:

答案 0 :(得分:1)

您是对的,render :template => 'spots/new'只是呈现您的视图模板,它不会调用spots#new。您应该在渲染模板之前创建@spot实例变量。

在您的情况下,可能以下代码将起作用:

<% @spot ||= Spot.new %>
<%= form_for(@spot) do |f| %>
...
<% end %>