我是新来ROR的。我正在尝试创建一个用于申请停车许可的页面。我遇到了这个问题

我找不到问题所在。也许我漏掉了什么。任何帮助都是非常感谢的。
这是我的permit_controller.rb
class PermitController < ApplicationController
before_action :set_permit, only: [:show, :destroy]
def index
@permit = Permit.all
end
def new
@permit = Permit.new
end
def create
@permit = Permit.new(user_params)
if @permit.save
redirect_to root_path
else
flash[:success] = "Welcome to your profile!"
end
end
def destroy
end
def show
@permit = Permit.find(params[:id])
end
private
# Use callbacks to share common setup or constraints between actions.
def set_permit
@permit = Permit.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def permit_params
params.require(:permit).permit(:vehicle_type, :name, :studentid, :department, :carplate, :duration,:permitstart,:permitend)
end
end这是我的许可证/new.html.erb
<% provide(:title, 'New Permit') %>
<h1>Permit Application</h1>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= form_for(@permit) do |f| %>
<%= render 'shared/error_messages' %>
<%= f.label :"Vehicle Type" %>
<%= f.text_field :vehicle_type, class: 'form-control' %>
<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>
<%= f.label :"Student ID" %>
<%= f.text_field :studentid, class: 'form-control' %>
<%= f.label :department %>
<%= f.text_field :department, class: 'form-control' %>
<%= f.label :"Car Plate" %>
<%= f.text_field :carplate, class: 'form-control' %>
<%= f.submit "Confirm", class: "btn btn-primary" %>
<% end %>
</div>
</div>这是我的route.rb
Rails.application.routes.draw do
resources :users
resources :permit
get 'permit/destroy'
get 'permit/show'
root 'static_pages#home'
get 'homepage/index'
post 'permit' => 'permit#create'
get 'permitapplication' => 'permit#new'
get 'adminlogin' => 'admin_controller#index'
get 'contact'=> 'static_pages#contact'
get 'about' => 'static_pages#about'
get 'signup' => 'users#new'
get 'help' => 'static_pages#help'
post 'users' => 'users#create'
get 'login' => 'sessions#new' #Page for a new session
post 'login' => 'sessions#create' #Create a new session
delete 'logout'=>'sessions#destroy' #Delete a session
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end发布于 2016-09-21 00:13:02
相反,resources :permit使用resources :permits。
发布于 2016-09-21 00:17:44
这里最大的问题是您的routes.rb文件中没有permit/new。
正如前面提到的,使用rails进行资源调用可能会更好
在routes.rb中
resources :permits
并删除行
get 'permit/destroy'
get 'permit/show'
等。
发布于 2016-09-23 02:17:36
我将尝试整合我们的各种答案和评论。
要解决当前的问题,请在config/routes.rb中将resources :permit更改为resources :permits。这将公开您的应用程序中使用的所有七个RESTful路由。(这也会使自定义permit路由过时,除非您在各自的表单中显式调用它们。)有关RESTful路由/资源的信息,请访问:http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions
为什么这很有价值?
这是您的应用程序如何知道将控制器操作与视图(以及表单)结合使用的方法。假设许可控制器中有一个编辑操作,而app/views/permits/edit.html.erb有一个表单。在这个页面的编辑表单中,您只需要使用form_for @permit和Rails就可以完成所有其他工作。它知道您正在使用这条特定的路由。我建议您阅读有关Rails.中路由的内容
请记住,Ruby on Rails是经过精心设计的,目的是让您作为开发人员更容易操作。
https://stackoverflow.com/questions/39598983
复制相似问题