Rails 3简单forms错误:无法解析YAML

我的new.html.erb:

New konkurrancer

<%= simple_form_for [:admin, @konkurrancer] do |f| %

我在视图中看到此错误(http:// localhost:3000 / admin / konkurrancers / new):

 Psych::SyntaxError in Admin/konkurrancers#new Showing C:/Rails/konkurranceportalen/app/views/admin/konkurrancers/new.html.erb where line #4 raised: couldn't parse YAML at line 20 column 14 Extracted source (around line #4): 1: 

New konkurrancer

2: 3: 4: 5: 6:

请参阅http://pastie.org/1652928

我的控制器:

  class Admin::KonkurrancersController  @konkurrancers } end end # GET /konkurrancers/1 # GET /konkurrancers/1.xml def show @konkurrancer = Konkurrancer.find(params[:id]) respond_to do |format| format.html # show.html.erb format.xml { render :xml => @konkurrancer } end end # GET /konkurrancers/new # GET /konkurrancers/new.xml def new @konkurrancer = Konkurrancer.new respond_to do |format| format.html # new.html.erb format.xml { render :xml => @konkurrancer } end end def statistik @reklamers = Reklamer.find(:all) end # GET /konkurrancers/1/edit def edit @konkurrance = Konkurrancer.find(params[:id]) end # POST /konkurrancers # POST /konkurrancers.xml def create @konkurrancer = Konkurrancer.new(params[:konkurrancer]) respond_to do |format| if @konkurrancer.save format.html { redirect_to(@konkurrancer, :notice => 'Konkurrancer was successfully created.') } format.xml { render :xml => @konkurrancer, :status => :created, :location => @konkurrancer } else format.html { render :action => "new" } format.xml { render :xml => @konkurrancer.errors, :status => :unprocessable_entity } end end end # PUT /konkurrancers/1 # PUT /konkurrancers/1.xml def update @konkurrancer = Konkurrancer.find(params[:id]) respond_to do |format| if @konkurrancer.update_attributes(params[:konkurrancer]) format.html { redirect_to(@konkurrancer, :notice => 'Konkurrancer was successfully updated.') } format.xml { head :ok } else format.html { render :action => "edit" } format.xml { render :xml => @konkurrancer.errors, :status => :unprocessable_entity } end end end # DELETE /konkurrancers/1 # DELETE /konkurrancers/1.xml def destroy @konkurrancer = Konkurrancer.find(params[:id]) @konkurrancer.destroy respond_to do |format| format.html { redirect_to(admin_konkurrancers_path) } format.xml { head :ok } end end end In view I get following error: NoMethodError in Admin/konkurrancers#new Showing C:/Rails/konkurranceportalen/app/views/admin/konkurrancers/new.html.erb where line #3 raised: undefined method `konkurrancers_path' for #<#:0x3e16270> Extracted source (around line #3): 1: 

New konkurrancer

2: 3: 4: 5: 6: Rails.root: C:/Rails/konkurranceportalen

耙路线:

 C:\Rails\konkurranceportalen>rake routes (in C:/Rails/konkurranceportalen) admin_kategoris GET /admin/kategoris(.:format) {:action= >"index", :controller=>"admin/kategoris"} POST /admin/kategoris(.:format) {:action= >"create", :controller=>"admin/kategoris"} new_admin_kategori GET /admin/kategoris/new(.:format) {:action= >"new", :controller=>"admin/kategoris"} edit_admin_kategori GET /admin/kategoris/:id/edit(.:format) {:action= >"edit", :controller=>"admin/kategoris"} admin_kategori GET /admin/kategoris/:id(.:format) {:action= >"show", :controller=>"admin/kategoris"} PUT /admin/kategoris/:id(.:format) {:action= >"update", :controller=>"admin/kategoris"} DELETE /admin/kategoris/:id(.:format) {:action= >"destroy", :controller=>"admin/kategoris"} admin_konkurrancers GET /admin/konkurrancers(.:format) {:action= >"index", :controller=>"admin/konkurrancers"} POST /admin/konkurrancers(.:format) {:action= >"create", :controller=>"admin/konkurrancers"} new_admin_konkurrancer GET /admin/konkurrancers/new(.:format) {:action= >"new", :controller=>"admin/konkurrancers"} edit_admin_konkurrancer GET /admin/konkurrancers/:id/edit(.:format) {:action= >"edit", :controller=>"admin/konkurrancers"} admin_konkurrancer GET /admin/konkurrancers/:id(.:format) {:action= >"show", :controller=>"admin/konkurrancers"} PUT /admin/konkurrancers/:id(.:format) {:action= >"update", :controller=>"admin/konkurrancers"} DELETE /admin/konkurrancers/:id(.:format) {:action= >"destroy", :controller=>"admin/konkurrancers"} admin_reklamers GET /admin/reklamers(.:format) {:action= >"index", :controller=>"admin/reklamers"} POST /admin/reklamers(.:format) {:action= >"create", :controller=>"admin/reklamers"} new_admin_reklamer GET /admin/reklamers/new(.:format) {:action= >"new", :controller=>"admin/reklamers"} edit_admin_reklamer GET /admin/reklamers/:id/edit(.:format) {:action= >"edit", :controller=>"admin/reklamers"} admin_reklamer GET /admin/reklamers/:id(.:format) {:action= >"show", :controller=>"admin/reklamers"} PUT /admin/reklamers/:id(.:format) {:action= >"update", :controller=>"admin/reklamers"} DELETE /admin/reklamers/:id(.:format) {:action= >"destroy", :controller=>"admin/reklamers"} reklamers GET /reklamers(.:format) {:action= >"index", :controller=>"reklamers"} POST /reklamers(.:format) {:action= >"create", :controller=>"reklamers"} new_reklamer GET /reklamers/new(.:format) {:action= >"new", :controller=>"reklamers"} edit_reklamer GET /reklamers/:id/edit(.:format) {:action= >"edit", :controller=>"reklamers"} reklamer GET /reklamers/:id(.:format) {:action= >"show", :controller=>"reklamers"} PUT /reklamers/:id(.:format) {:action= >"update", :controller=>"reklamers"} DELETE /reklamers/:id(.:format) {:action= >"destroy", :controller=>"reklamers"} konkurrencer_index GET /konkurrencer(.:format) {:action= >"index", :controller=>"konkurrancers"} POST /konkurrencer(.:format) {:action= >"create", :controller=>"konkurrancers"} new_konkurrencer GET /konkurrencer/new(.:format) {:action= >"new", :controller=>"konkurrancers"} edit_konkurrencer GET /konkurrencer/:id/edit(.:format) {:action= >"edit", :controller=>"konkurrancers"} konkurrencer GET /konkurrencer/:id(.:format) {:action= >"show", :controller=>"konkurrancers"} PUT /konkurrencer/:id(.:format) {:action= >"update", :controller=>"konkurrancers"} DELETE /konkurrencer/:id(.:format) {:action= >"destroy", :controller=>"konkurrancers"} admin /admin(.:format) {:control ler=>"admin", :action=>"index"} statistik /statistik(.:format) {:control ler=>"public", :action=>"statistik"} /:id(.:format) {:control ler=>"kategoris", :action=>"show"} root /(.:format) {:control ler=>"public", :action=>"index"} C:\Rails\konkurranceportalen> 

我的路线档案:

 Konkurranceportalen::Application.routes.draw do namespace :admin do resources :kategoris resources :konkurrancers resources :reklamers end resources :reklamers resources :konkurrencer, :controller => 'konkurrancers' match "/admin" => "admin#index" match "/statistik" => "public#statistik" match '/:id' => 'kategoris#show' root :to => "public#index" end 

尝试

 <%= simple_form_for ['admin', @konkurrancer] do |f| %> 

看起来你是一个名字间隔模型?

您正在使用命名空间模型 – 您必须在表单路径中引用命名空间。

试试这个:

 <%= simple_form_for [:admin, @konkurrancer] do |f| %>