我是一名新手,通过观看udemy视频在轨道上学习红宝石,但我遇到了#34;路由错误"。视频监察员在使用崇高时似乎有不同的颜色文字,所以我不确定我的假设是什么?我目前正在使用sublime的试用版。我的代码在下面,看到附加的图像。谢谢!
class PicsController < ApplicationController
def index
end
def new
@pic = Pic.new
end
def create
@pic = Pic.new(pic_params)
end
private
def pic_params
params.require(:pic).permit(:title, :description)
end
end
当我运行服务器以查看输出结果时: 图像在sublime文本编辑器中显示我的代码: [![在此处输入图像说明] [2]] [2]
答案 0 :(得分:3)
您尝试访问/posts
处的页面,而您的控制器和路径文件清楚地告知该路径应为/pic
。
尝试:
http://localhost:3000/pic
此外,您似乎必须修复我们的config/routes.rb
:
Rails.application.routes.draw do
root "pics#index"
resources :pic
get 'posts' => 'pics#index', as: 'posts'
end
注意:控制器的命名约定是Rails中的复数名称。这意味着您还必须确保您的路由指向多个版本的控制器名称。
答案 1 :(得分:0)
更好的是,您的控制器名称是Pics,您的 routes.rb 文件中应该有resources :pics
。相反,你有resource :pic
。这只是一个很好的做法,错误是你试图访问 / posts ,而不是 / pic ,或者更好: / pics ,一旦你修好路线。
答案 2 :(得分:0)
您没有帖子路由器。转到config / routes.rb&amp;添加新行:
get 'posts' => 'pic#index', as: 'posts'
&安培;网址localhost:3000/posts
将访问控制器pic
&amp;行动index
或
resources :pics
和run rake routes
显示您的路径:
localhost:3000/pics
将使用控制器pics
&amp;行动index