Bv2*_*202 7 ruby ruby-on-rails
我正在使用脚手架创建的默认代码.我没有改变任何事情.
Showing app/views/presences/_form.html.erb where line #1 raised:
undefined method `model_name' for NilClass:Class
1: <%= form_for(@presence) do |f| %>
2: <% if @presence.errors.any? %>
3: <div id="error_explanation">
4: <h2><%= pluralize(@presence.errors.count, "error") %> prohibited this presence from being saved:</h2>
Run Code Online (Sandbox Code Playgroud)
这有什么不对?我永远不会调用名为"model_name"的方法,这段代码是自动化的,为什么它不起作用?
谢谢
Zab*_*bba 20
尝试添加这对您presences_controller的new所呈现的形式或其他相关行动:
#presuming your model is called Presence
@presence = Presence.new
Run Code Online (Sandbox Code Playgroud)
视图(和form_for方法)期望在@presence变量中实际具有真实的Presence模型.像这样的@ -variable从控制器传递,这意味着你必须在控制器动作中设置它.
在"新"操作的情况下 - 您没有正在使用的现有Presence对象(不像是"show") - 因此您只需要设置一个空白的新对象.
form_for方法将采用这样的Presence对象,并且:如果它是来自db的现有对象,将创建正确的POST路由以更新它.但如果它是一个新的空的,将创建一个正确的路径来创建一个新的.
希望有帮助......
| 归档时间: |
|
| 查看次数: |
19668 次 |
| 最近记录: |