2012-07-09 122 views
0

我的問題是,如果我想測試編輯表格,我總是會得到這個例外。Rails表格編輯表格

你能幫我弄清楚這個問題嗎?

這是錯誤消息:

undefined method `model_name' for NilClass:Class 
Extracted source (around line #5): 

2: <div class="row"> 
3:   <div class="box"> 
4:     <span id="logo">Azubiware 2.0</span><br><br> 
5:     <%= form_for(@bsinfo) do |f| %> 
6:   <% @basedate = Date.new(@bsinfo.year) %> 
7:   <% @basedate = @basedate.beginning_of_year %> 
8:   <% @basedate = @basedate.beginning_of_week %> 

我有同樣的形式與我的用戶表去,這正常工作......

class BsinfosController < ApplicationController 

    def index 
     @title = "Verwaltung Abwesehnheiten" 
    end 
def new 
     @title = "Sign up" 
     @bsinfo = Bsinfo.new 
    end 

    def show 
     @bsinfo = Bsinfo.find(params[:id]) 
     @title = @bsinfo.year 
    end 

    def create 
     @bsinfo = Bsinfo.new(params[:bsinfo]) 
     if @bsinfo.save 
       flash[:success] = "Schedule successfull created" 
       redirect_to bsinfos_path 
     else 
       render 'new' 
     end 

    end 

    def edit 
     @title = "Settings" 
    end 

    def update 
    if @bsinfo.update_attributes(params[:bsinfo]) 
     flash[:success] = "Profile successfull updated" 
      redirect_to @bsinfo 
    else 
     render 'edit' 
    end 
    end 

    def destroy 
    Bsinfo.find(params[:id]).destroy 
    flash[:success] = "Scheduel destroyed" 
    redirect_to bsinfos_path 
    end 
end 

和鏈接到編輯的形式是像

<% @bs = Bsinfo.all %> 
<% @bs.each do |bsall| %> 

<%= link_to "#{bsall.name}", edit_bsinfo_path(bsall), :class => "btn" %> 

<% end %> 

的URL看起來像 本地主機:3000/bsinfos/17 /編輯

+1

您可以發佈您的控制器代碼請 – edralph 2012-07-09 20:58:40

回答

0

無論你的表格是基於什麼模型都返回爲零。確保窗體基於的控制器中的@var實際上設置爲所需對象的實例。

0

的代碼片段:

form_for(@bsinfo) 

正在生成您的錯誤最可能的原因是@bsinfo爲零。

我建議您查看一下您的控制器代碼,並檢查@bsinfo可能是nil的條件。