如何在Ruby中调试“NoMethodError”

时间:2015-09-06 16:12:26

标签: ruby-on-rails

我收到错误

NoMethodError in Styles#new undefined method 'styles_path' for <Class:0x00000006288268>:0x0000000632ca20

如果我没有form_for选项并且让我们说用Hello World替换整个代码段,它的效果非常好。

app / views / styles文件夹中的new.html.erb文件代码

<div class="row">
  <div class="well col-md-8 col-md-offset-2">
    <%= form_for @style do |f|%>
      <%= f.label :name %>
      <%= f.text_field :name %>
      <%= f.submit 'Create style' , class: 'btn btn-success' %>
    <%end%>
  </div>
</div>

我将样式控制器定义为:

class StylesController < ApplicationController

  def new
    @style = Style.new
  end

end

路线文件包含以下代码段

  resources :styles, only: [:new,:show]

1 个答案:

答案 0 :(得分:2)

form_for发布styles_path(POST)上的表单来创建新样式,但是,在routes.rb中,您只提到了new和{ {1}}。您需要为show添加一个,并且还需要在控制器中添加名为create的新操作。

的routes.rb

create

控制器:

resources :styles, only: [:new, :show, :create]

推荐:您应该read this