0

私の問題は、編集フォームをテストしたい場合、常にこの例外が発生することです..

問題を解決するのを手伝ってもらえますか?

これはエラーメッセージです:

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 は localhost:3000/bsinfos/17/edit のように表示されます

4

2 に答える 2

0

コードのスニペット:

form_for(@bsinfo)

@bsinfoがnilであるため、エラーが発生している可能性があります。

コントローラコードを確認し、その条件を確認することをお勧めし@bsinfoますnil

于 2012-07-10T02:04:54.823 に答える
0

フォームが基づいているモデルが何であれ、nil として返されます。フォームが基づいているコントローラーの @var が、実際に必要なオブジェクトのインスタンスに設定されていることを確認してください。

于 2012-07-09T22:51:26.880 に答える