【问题标题】:Rails help simple form: NoMethodError in Konkurrancers#newRails 帮助简单形式:Konkurrancers#new 中的 NoMethodError
【发布时间】:2011-03-02 12:42:35
【问题描述】:

我的简单表单有问题,我收到此错误网址(http://localhost:3000/konkurrencer/new): 显示 C:/Rails/konkurranceportalen/app/views/konkurrancers/_form.html.erb 其中第 1 行提出:

undefined method `konkurrancers_path' for #<#<Class:0x382ea08>:0x382d4a8>

Extracted source (around line #1):

1: <%= simple_form_for(@konkurrancer) do |f| %>
2:     <%= f.error_messages %>
3:     <%= f.input :name %>
4:     <%= f.input :banner1 %>

我的模型 konkurrancer.rb

class Konkurrancer < ActiveRecord::Base
has_many :ratings
belongs_to :kategori
validates_presence_of :name, :tracking, :banner1, :banner2, :kategori_id, :udtraekkes, :arrangeor
has_friendly_id :name, :use_slug => true
end

我的表格:

<%= simple_form_for(@konkurrancer) do |f| %>
    <%= f.error_messages %>
    <%= f.input :name %>
    <%= f.input :banner1 %>
    <%= f.input :banner2 %>
    <%= f.input :tracking %>
    <%= f.input :arrangeor %>
    <%= f.input :vaerdi %>
    <%= f.input :udtraekkes %>
    <%= f.association :kategori %>
    <%= f.input :note %>
    <%= f.button :submit %>
<% end %>

我的控制器:

  def new
    @konkurrancer = Konkurrancer.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @konkurrancer }
    end
  end

我的路线.rb

resources :konkurrencer, :controller => 'konkurrancers'

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    您可能没有将koncurrancer 定义为config/routes.rb 中的资源。只有将其定义为资源时,才会定义 koncurrancers_path 辅助方法。你应该添加

    map.resources :koncurrancers
    

    到您的routes.rb 文件

    【讨论】:

    • :konkurrencer 重命名为 :konkurrancers
    • 如果我使用资源,它就可以工作:konkurrancers。但是为什么当我使用资源时它会起作用 :konkurrencer, :controller => 'konkurrancers' ?
    • link
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多