Rails表编辑表单

时间:2012-07-09 20:50:15

标签: ruby-on-rails edit

我的问题是,如果我想测试编辑表单,我总是得到这个例外..

你能帮我解决问题吗?

这是错误消息:

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 %>

网址看起来像     本地主机:3000 / bsinfos / 17 /编辑

2 个答案:

答案 0 :(得分:0)

您的表单所基于的任何模型都将返回为零。确保表单所基于的控制器中的@var实际上设置为所需对象的实例。

答案 1 :(得分:0)

代码片段:

form_for(@bsinfo)

最有可能产生错误,因为@bsinfo为零。

我建议您查看控制器代码并检查@bsinfo可以nil的条件。