Ruby on rails 未定义方法的形式_
我读了一本名为《Rails 3 in Action》的书,写了两页:“index”和“new”,set routes.rb:Ruby on rails 未定义方法的形式_,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我读了一本名为《Rails 3 in Action》的书,写了两页:“index”和“new”,set routes.rb: root :to => 'projects#index' match '/new', to:'projects#new' 和项目控制员: def new @project = Project.new end def create @project = Project.new(parmas[:project]) @project.save flas
root :to => 'projects#index'
match '/new', to:'projects#new'
和项目控制员:
def new
@project = Project.new
end
def create
@project = Project.new(parmas[:project])
@project.save
flash[:notice] = "Project has been created"
redirect_to @project
end
和查看文件:
index.html.erb
<%= link_to "new", new_path %>
这导致:
未定义的方法“projects\u path”#
路在哪里?当我打印
时,我得到/
,但是
给出了错误未定义的方法
我如何定义一个方法
projects\u path
?Root不是projects\u path
?从routes.rb
中删除与“/new”匹配的行,并添加以下内容:
resources :projects
您应该在routes.rb中为项目定义资源
resources :projects
这将生成helper
projects\u路径
和大量的用于创建新项目的路径是指向“/projects”索引URL的HTTP post。您需要指定此路由:
post "/projects", :controller => "projects", :action => "create", :as => "projects"
这将生成一个projects\u路径
,这是您的表单
正在寻找的辅助方法
正如其他人所说,您可能应该使用resources:projects
。如果只想创建默认创建的项目的子集,可以使用:only
:
resources :projects, :only => %w(index new create)
已解决问题,但未定义#在哪里可以定义Formbuilder?@ChangJuPark的方法“label=”。您不必“定义Formbuilder”。您需要使用
。听起来您使用的是
,这是错误的。
resources :projects, :only => %w(index new create)