【问题标题】:NameError (uninitialized constant *nameofcontroller* error in RailsNameError(Rails 中未初始化的常量 *nameofcontroller* 错误
【发布时间】:2009-11-19 17:48:19
【问题描述】:

我是 RoR 的新手,正在尝试不使用脚手架的简单 CRUD 操作。我有一个名为 ccword 的模型,控制器名为 WordsController。

问题是我正在创建简单的“创建”并导致我出现此错误: C cwordsController中的NameError#create

未初始化的常量CCwordsController

这就是我的控制器中的 create 方法的样子:

def create
  @ccword = CCword.new(params[:ccword])
    respond_to do |format|
      if @ccword.save
        flash[:notice] = 'Word was successfully added.'
        format.html { redirect_to(@ccword) }
        format.xml  { render :xml => @ccword, :status => :created, :location => @ccword }
      else
        flash[:notice] = 'Error.'
        format.html { render :action => "show" }
        format.xml  { render :xml => @ccword.errors, :status => :unprocessable_entity }

      end
    end
  end  
end

我的视图 new.html.erb 看起来像:

<h1>Words new</h1>


<% form_for (@ccword) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :word %><br />
    <%= f.text_field :word %>
  </p>
  <p>
    <%= f.label :meaning %><br />
    <%= f.text_field :meaning %>
  </p>

  <p>
    <%= f.submit 'create' %>
  </p>

  <% end %>

当我点击创建时,我得到上面的 NameError。 在控制台中显示以下日志:

Processing ApplicationController#create (for 127.0.0.1 at 2009-11-19 09:33:06) [POST]
  Parameters: {
    "commit"=>"Create", 
    "authenticity_token"=>"hqf54HkXSaTPGejGSbEPcw3ZpOy1Ayp3gvti29gc7Eg=", 
    "c_cword"=>{"meaning"=>"2", "word"=>"2"}
  }

NameError (uninitialized constant CCwordsController):

有什么想法吗?

【问题讨论】:

  • 您需要阅读有关如何在您的问题中格式化代码的说明
  • 你的控制器叫什么名字?

标签: ruby-on-rails


【解决方案1】:

问题出在这里:

format.html { redirect_to(@ccword) }

试试改成

format.html { redirect_to word_path(@ccword) }

【讨论】:

    猜你喜欢
    • 2014-02-01
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 2017-07-10
    相关资源
    最近更新 更多