【发布时间】:2014-08-01 00:49:45
【问题描述】:
请帮助我。我不确定我的路线或复数是否有问题,但出现此错误并且不再知道该怎么办,已经在很多地方进行了研究,但一无所获。
我开始了一个迷你教程来设计并且它有效,登录有效。所以我想重用它并建立一个待办事项列表。
当我将部分渲染放到我希望他们保留字段以创建待办事项列表的位置时,会发生:
ActionView::Template::Error (undefined method `model_name' for NilClass:Class):
1: <%= form_for(@todo_list) do |f| %>
2: <% if @todo_list.errors.any? %>
3: <div id="error_explanation">
4: <h2><%= pluralize(@todo_list.errors.count, "error") %> prohibited this todo_list from being saved:</h2>
路线:
match 'dashboard' => 'home#dashboard'
match 'register' =>'registration#register'
root :to => 'home#index'
new_member_session GET /members/sign_in(.:format) devise/sessions#new
member_session POST /members/sign_in(.:format) devise/sessions#create
destroy_member_session DELETE /members/sign_out(.:format) devise/sessions#destroy
member_password POST /members/password(.:format) devise/passwords#create
new_member_password GET /members/password/new(.:format) devise/passwords#new
edit_member_password GET /members/password/edit(.:format) devise/passwords#edit
PUT /members/password(.:format) devise/passwords#update
cancel_member_registration GET /members/cancel(.:format) registration#cancel
member_registration POST /members(.:format) registration#create
new_member_registration GET /members/sign_up(.:format) registration#new
edit_member_registration GET /members/edit(.:format) registration#edit
PUT /members(.:format) registration#update
DELETE /members(.:format) registration#destroy
dashboard /dashboard(.:format) home#dashboard
register /register(.:format) registration#register
root / home#index
型号:
class ToDoList < ActiveRecord::Base
attr_accessible :is_favorite, :name, :description
has_many :tasks, dependent: :destroy
belongs_to :member
控制器:
class ToDoListController < ApplicationController
def index
@todo_lists = ToDoList.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @todo_lists }
end
end
def new
@todo_list = ToDoList.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @todo_list }
end
end
【问题讨论】:
-
@todo_list为零。你是为你正在渲染的视图定义它吗? -
是的。当我运行调试时,@todo_list 甚至为空,但不明白为什么它似乎被正确调用:。 (好吧,在这个视图中:
<% if member_signed_in? %> <%= render partial: 'to_do_lists/to_do_list' %> <%= link_to "Saída", destroy_member_session_path, :method => :delete %>和部分:<%= form_for(@todo_list) do |f| %> <% if @todo_list.errors.any? %> <div id="error_explanation"> .. -
你在哪里定义它不为零?
-
好吧,它最终为空,因为它还没有创建任何东西:(。我想要部分打开新的。错误可能很愚蠢,但我注意到并找到了原因..@七海猫
-
改为使用 form_for(ToDoList.new) 会发生什么?
标签: ruby-on-rails routes