我只是想尝试使用rails并开始我的第一个项目。我正在创建一个简单的项目,私人教练可以在健身房注册个人资料并寻找工作。 但是,当尝试导航到新的私人教练页面时,会弹出此错误:
undefined method `pts_path' for #<#<Class:0x5d14ef8>:0x5690b68>
我的私人教练控制器如下所示:
class PersonaltrainersController < ApplicationController
def index
@PT = Pt.all
end
def new
@PT = Pt.new
end
def show
end
def create
end
def contact
end
def edit
end
end
在我有的路线文件中:
Rails.application.routes.draw do
resources :personaltrainers
root 'personaltrainers#index'
end
我的simple_form看起来像:
<%= simple_form_for @PT do |form| %>
<%= form.input :name %>
<%= form.input :age %>
<%= form.input :sex %>
<%= form.input :experience %>
<% end %>
personaltrainers_path GET /personaltrainers(.:format) personaltrainers#index
POST /personaltrainers(.:format) personaltrainers#create
new_personaltrainer_path GET /personaltrainers/new(.:format) personaltrainers#new
edit_personaltrainer_path GET /personaltrainers/:id/edit(.:format) personaltrainers#edit
personaltrainer_path GET /personaltrainers/:id(.:format) personaltrainers#show
PATCH /personaltrainers/:id(.:format) personaltrainers#update
PUT /personaltrainers/:id(.:format) personaltrainers#update
DELETE /personaltrainers/:id(.:format) personaltrainers#destroy
root_path GET / personaltrainers#index
非常感谢任何帮助。
答案 0 :(得分:0)
您index
和new
方法应为:
def index
@PT = Personaltrainer.all
end
def new
@PT = Personaltrainer.new
end
顺便说一句,我们(ruby开发者)有一个约定使用小的大小写变量名,在more_than_one_word的情况下使用下划线。我们使用ALL_CAPS作为常量。
答案 1 :(得分:0)
将表单代码更改为:
<%= simple_form_for @PT, url: personaltrainers_path do |form| %>
<%= form.input :name %>
<%= form.input :age %>
<%= form.input :sex %>
<%= form.input :experience %>
<% end %>
当undefined method pts_path'
尝试从模型中创建网址时{p> simple_form_for
被提出(pts
它是pt
模型的复数形式),但您的路由有另一个资源名称personaltrainers
。所有你需要的,它通过显式url到表单助手,在这种情况下,它应该是你的路由文件personaltrainers_path
。