2011-03-09 41 views
0

我new.html.erb:Rails 3的简单形式的错误:无法解析YAML

<h1>New konkurrancer</h1> 

    <%= simple_form_for [:admin, @konkurrancer] do |f| % 
     <%= f.input :name %> 
     <%= f.button :submit %> 
    <% end %> 


    <%= link_to 'Back', admin_konkurrancers_path %> 

和我观点得到这个错误(http://本地主机:3000 /管理/ konkurrancers /新) :

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: <h1>New konkurrancer</h1> 
2: 
3: <%= simple_form_for [:admin, @konkurrancer] do |f| %> 
4: <%= f.input :name %> 
5: <%= f.button :submit %> 
6: <% end %> 

查看完整的痕迹在这里http://pastie.org/1652928

我的控制器:

class Admin::KonkurrancersController < Admin::AdminController 
     # GET /konkurrancers 
     # GET /konkurrancers.xml 
     def index 
     @konkurrancers = Konkurrancer.all 
     @konkurrancer = Konkurrancer.find(:all) 
     respond_to do |format| 
      format.html # index.html.erb 
      format.xml { render :xml => @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 #<#<Class:0x3e1ae48>:0x3e16270> 

    Extracted source (around line #3): 

    1: <h1>New konkurrancer</h1> 
    2: 
    3: <%= simple_form_for(@konkurrancer) do |f| %> 
    4: 
    5: <%= f.input :name %> 
    6: <%= f.button :submit %> 

    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 
+0

可以运行'耙routes'和粘贴在这里输出?我认为问题在于ruby假设复数konkurrancer与konkurrancers有所不同 – Augusto 2011-03-09 13:24:00

+0

我现在已经发布了路线 – 2011-03-09 13:46:51

回答

0

尝试

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

它看起来像你的名字间隔模式是?

+0

是的我有一个名字空间模型。我得到以下错误无法解析YAML在第20行第14列 提取的源代码(在第5行左右): – 2011-03-09 13:39:29

+0

我们需要查看yml文件,该问题正在报告中 – 2011-03-09 13:53:09

+0

您的意思是语言区域设置文件? – 2011-03-09 14:02:32

0

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

试试这个:

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