Ruby on rails 将_重定向到不在控制器中工作?
出于某种原因,我的redirect_to action在我的Rails 4应用程序中不再工作了?我得到的错误是:Ruby on rails 将_重定向到不在控制器中工作?,ruby-on-rails,ruby,controller,Ruby On Rails,Ruby,Controller,出于某种原因,我的redirect_to action在我的Rails 4应用程序中不再工作了?我得到的错误是: Missing template posts/create 发布控制器 def create @post = current_user.posts.build(post_params) if @post.save redirect_to @post end end def show @post = Post.find(params[:id
Missing template posts/create
发布控制器
def create
@post = current_user.posts.build(post_params)
if @post.save
redirect_to @post
end
end
def show
@post = Post.find(params[:id])
end
def new
@post = Post.new
end
def index
redirect_to root_path
end
private
def post_params
params.require(:post).permit(:content, :community_id, :user_id, :photo, :photo_file_name)
end
路线
resources :posts do
member do
post :create
end
end
它不应该是储蓄。您可以调用
@post.valid?
和@post.errors.full_消息查看任何错误或验证问题。您从当前用户创建新帖子有什么原因吗?您也可以尝试@post=post.new(post\u参数)
此外,不需要在管线中指定“创建”。资源路由已创建为默认路由。请参见运行rake路由时看到的内容
post POST /posts/:id(.:format) posts#create
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
new_post GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
GET /posts/:id(.:format) posts#show
PATCH /posts/:id(.:format) posts#update
PUT /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy
我看得出来
post POST /posts/:id(.:format) posts#create
POST /posts(.:format) posts#create
我认为这可能是问题的原因
我认为要使这项工作顺利进行,你必须将其移除
member do
post :create
end
来自资源:员额
我不太确定你想做什么?在这里,你需要在动作之前添加,然后回调到你的控制器
操作之前:设置发布,仅:[:显示,:编辑,:更新,:销毁]
私人
def set_post
@post=post.find(参数[:id])
结束
现在,您将获得[:show,:edit,:update,:destroy]操作的值您确定已到达重定向到
吗?如果帖子保存失败会发生什么?即使我添加了一个else并允许它呈现“新”页面,在控制台中它也会显示相同的错误。实际上,我在控制台中遇到了一个302错误。首先,你的路线怎么了<代码>资源:帖子
已经包含创建操作。其次,如果redirect\u to
在当前版本中不起作用,请使用URL帮助程序,即post\u URL(@post)
重定向到特定路径。我已经尝试过重定向到post\u URL(@posts),但我得到了相同的错误。我发现了问题所在。我对存储用户id进行了验证,但失败了。谢谢我删除了它,现在我得到了:没有路径匹配[POST]“/posts/new”是的,你会得到,但是[get]“/posts/new”有效。要创建新帖子,我们将使用此[post]“/posts”