【发布时间】:2015-10-29 18:15:13
【问题描述】:
我正在使用 Ruby on Rails 4,我的项目是关于一个 HR 应用程序。员工可以通过他的个人资料页面创建请假请求,但是我在他的个人资料页面中创建表单,我只想创建一个链接到请求控制器但我遇到了这个错误:
NameError in Employees#show Showing /home/user/workspace/hrapp/app/views/employees/show.html.erb where line #50 raised:
uninitialized constant Requests’
Extracted source (around line #50):
48 </p>
49 <%= link_to 'Edit', edit_employee_path(@employee) %>
50 <%= link_to ‘My Annual Leave Requests’, controller:'requests' %>
51 <%= link_to 'Back', employees_path %>
我尝试了这个解决方案:https://hackhands.com/rails-nameerror-uninitialized-constant-class-solution/
但它不起作用,我没有找到这个错误的通用答案。
这是 rake 路线:
user@snf-34155:~/workspace/hrapp$ rake routes
Prefix Verb URI Pattern Controller#Action
employee_requests GET /employees/:employee_id/requests(.:format) requests#index
POST /employees/:employee_id/requests(.:format) requests#create
PUT /employees/:employee_id/requests/:id(.:format) requests#update
DELETE /employees/:employee_id/requests/:id(.:format) requests#destroy
employees GET /employees(.:format) employees#index
POST /employees(.:format) employees#create
new_employee GET /employees/new(.:format) employees#new
edit_employee GET /employees/:id/edit(.:format) employees#edit
employee GET /employees/:id(.:format) employees#show
PATCH /employees/:id(.:format) employees#update
PUT /employees/:id(.:format) employees#update
DELETE /employees/:id(.:format) employees#destroy
root GET / welcome#index
我想我只需要编写正确的路线,但我尝试了其中的一些,但还是没有用。
请问,有人可以帮忙吗?
提前谢谢:)
app/controllers/requests_controller.rb
class RequestsController < ApplicationController
def index
@employee = Employee.find(params[:employee_id])
@request = @employee.requests.all
end
def show
@employee = Employee.find(params[:employee_id])
@request = @employee.requests.find(params[:id])
end
def new
@employee = Employee.find(params[:employee_id])
@request = @employee.requests.new
end
def create
@employee = Employee.find(params[:employee_id])
@request = @employee.requests.create(request_params)
redirect_to show_employee_path(@employee)
end
def destroy
@employee = Employee.find(params[:employee_id])
@request = @employee.requests.find(params[:id])
@request.destroy
redirect_to show_employee_path(@employee)
end
private
def request_params
params.require(:request).permit(:start_date, :end_date, :considerations)
end
end
【问题讨论】:
-
你有控制器叫
requests_controller吗? -
我不知道这是否是问题所在,但出现错误的行混合了单引号和“webby”单引号:
<%= link_to ‘My Annual Leave Requests’, controller:'requests' %>。尝试将围绕“我的年假请求”的引用样式更改为与围绕“请求”的引用样式相同。 -
是的@Pavan 我只是在这里更新 Î
标签: ruby-on-rails ruby-on-rails-4