0

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

景点#新

def new
  @spot = Spot.new
end

新的.html.erb

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

问题是,当我尝试使用 进行渲染spots#newrender :template => 'spots/new',我遇到了undefined method 'model_name' for NilClass:Class错误。你知道我在做什么错吗?提前致谢

4

1 回答 1

1

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

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

<% @spot ||= Spot.new %>
<%= form_for(@spot) do |f| %>
...
<% end %>
于 2012-08-06T08:41:32.320 回答