Tag: rails routing

在rails中呈现关于路由错误的404页面

我试图在rails中呈现集成的404页面作为例外。 我试过这个,但仍然得到路由错误页面: posts_controller.rb def destroy if current_user.username == @post.email @post.destroy respond_to do |format| format.html { redirect_to posts_url } format.json { head :no_content } end else not_found end application_controller.rb def not_found raise ActionController::RoutingError.new(‘Not Found’) end 的routes.rb Booklist::Application.routes.draw do get “pages/faq” get “pages/about” devise_for :users resources :posts root ‘posts#index’ end 视图: This is your post! Feel free […]

Rails嵌套路由问题

我在事件模型中有Q + A模型,并且在理解嵌套路由如何工作方面存在问题。 我得到一个No route matches {:action=>”create”, :controller=>”event_questions” and缺少必需的键:[:event_id]` 我的问题表单现在位于我的show.hrml.erb中,用于我的事件模型。 一些关系的东西来自neo4j gem,所以它不是标准的,但问题不应该与此有关。 据我所知,我发布到/ events / events_id / event_questions events_controller.rb def show @event = Event.find(params[:id]) @event_question = EventQuestion.new end event.rb has_many :out, :event_questions, type: ‘questions_of’ event_question.rb has_one :in, :events, origin: :event_questions 事件/ show.html.erb #form stuff event_questions_controller.rb def create @event_question = EventQuestion.new(event_question_params) if @event_question.save @event = Event.find(params[:event_id]) […]

Rails路由 – 如何将范围参数添加到url_for帮助程序?

我有资源生物和视图和链接添加新生物是: = link_to “Add new bio”, [:new, :admin, :bio] 如果我把资源:生物放到像这样的范围: namespace :admin do scope “/:bio_type”, :defaults => {:bio_type => “company”} do resources :bios end end 这不起作用 = link_to “Add new bio”, [:new, :admin, :bio, { bio_type: params[:bio_type] }] 我的问题是如何在url_for帮助器中添加作用域参数? 并且rails可以默认执行此操作吗? ps new_admin_bio_path({bio_type:params [:bio_type]})工作正常,但它只是好奇

Ruby on Rails重定向如何在路径文件中传递params

我们最近将我们网站上的产品名称从“手镯”更改为“腕带”,并且需要保留旧的路线以用于搜索引擎优化目的。 基本上,这些路线 www.hostname.com/products/bracelets/series-1/ www.hostname.com/products/bracelets/series-1/small-purple 应该路由到 www.hostname.com/products/wristbands/series-1/ www.hostname.com/products/wristbands/series-1/small-purple 我正在阅读这里的教程http://guides.rubyonrails.org/routing.html#redirection ,看起来我将使用块语法,但我仍然不确定如何正确地进行路由。 我也想了解更多关于路线文件的信息,所以任何信息都会很棒。 提前致谢 match “/bracelets/:name” => redirect {|params| “/wristbands/#{params[:name]}” } 编辑: 好吧,我已经玩了一段时间,这就是它如何与我尝试过的一起工作 match “/products/bracelets/:name/:name2” => redirect {|params| “/products/wristbands/#{params[:name].pluralize}/#{params[:name2].pluralize}” } 输入url: localhost:3000 / products / bracelets / series-1 / small-purple 输出url: localhost:3000 / products / wristbands 错误消息:无效的产品:series-1 (所以匹配工作,但重定向没有) 如果我更改匹配以检查这样的参数: match “/products/balance-bracelets/:name/:name2” => redirect {|params| “/products/wristbands/#{params.inspect}” } 我得到以下内容: /products/wristbands/{:name=>”series-1″, […]

ActionController :: RoutingError:未初始化的常量Api :: V1 :: ApiController

我有用于控制用户任务的Rails 5 API项目,我有以下错误,但并不总是对于相同的控制器和路由。 ActionController::RoutingError: uninitialized constant Api::V1::ApiController 我向您描述了一些我的项目,以更详细地解释错误。 应用结构 路线 scope module: ‘api’ do namespace :v1 do # => Login routes scope module: ‘login’ do match ‘login’, to: ‘sessions#login’, as: ‘login’, via: :post end # => Team routes scope module: ‘team’ do # => no admin routes resources :tasks, except: [:index] do collection do match […]

确定Journey :: Path :: Pattern是否与当前页面匹配

我正在尝试使用本文概述的方法与url_for一起确定当前路径是否在挂载的引擎中,但是我很难弄清楚如何使用Journey::Path::Pattern (其中是另mounted_path概述的mounted_path方法返回的内容。 class Rails::Engine def self.mounted_path route = Rails.application.routes.routes.detect do |route| route.app == self end route && route.path end end 除了官方文档之外,其他地方似乎没有太多的讨论,这不是特别有用。 我确定解决方案相对简单,我正在尝试编写的帮助方法的要点如下: def in_engine? engine current_url.include?(engine.mounted_path) end 编辑: 我的一些引擎作为子域安装,一些安装在应用程序本身内,这使我无法简单地检查当前子域是否与安装的路径相同,或者使用path_for 。

如何创建Rails 3路由以匹配所有请求并指向一个资源/页面?

我有一个rails应用程序(Rails 3.0),我需要暂时停止服务。 虽然这有效,但我想创建一个新路由,将所有请求定向到单个静态内容。 我有一个控制器设置为我的静态页面提供服务。 我试过这样的事情: match ‘*’ => ‘content#holding’ 和 match ‘*/*’ => ‘content#holding’ 匹配这里描述的通配符路由: Rails 3路由通配没有成功。 这可能是一个非常简单的答案,但我无法理解。 / 编辑 /忘了提到我在routes.rb文件的最顶端确实有这个规则。

如何在Rails中设置路由的默认格式?

路由的代码如下: resources :orders, only: [:create], defaults: { format: ‘json’ } resources :users, only: [:create, :update], defaults: { format: ‘json’ } resources :delivery_types, only: [:index], defaults: { format: ‘json’ } resources :time_corrections, only: [:index], defaults: { format: ‘json’ } 可以使用1个字符串为所有资源设置默认格式,每行不带“defaults”哈希值? 谢谢。

路由错误 – 未初始化的常量

我无法在Rails 3.2.12中解决这个问题,也许我错过了一些东西。 配置/ routes.rb中 get “home/index” root :to => “home#index” devise_for :users, :only => :omniauth_callbacks match ‘users/auth/:provider/callback’ => ‘authentications#create’ match ‘/auth/:provider/signout’ => ‘authentications#signout’ 应用程序/控制器/ authentication_controller.rb class AuthenticationsController < ApplicationController … end 应用程序/模型/ authentication.rb class Authentication < ActiveRecord::Base … end 我认为它应该符合我目前的知识,但有些东西我想念。 我的问题是告诉我有什么问题。 计数错误 uninitialized constant AuthenticationsController 这是一条显示在http://localhost:3000/auth/facebook/signout

如何在rails中获取当前路由

我正在构建一些rails示例应用程序,其中我有两个模型User和Projects。 两者之间的关联是用户has_many项目。 现在的问题是我愿意为用户的项目提供一些下拉菜单,如果有人点击那个项目,那么将项目显示页面。 但是如果用户在一个项目的编辑页面并从下拉列表中选择其他项目我想让他到显示页面的任何想法到达新选项目的编辑页面相同的情况。 我正在寻找的解决方案是: – 我们可以使用params [:controller]找到当前控制器,使用params [:action]查找当前操作如何找到当前路径。 提前完成 如果有人想看看我的代码是什么: – 这里是github的链接: – ‘ https://github.com/peeyushsingla/session_test.git/这里我使用简单的链接,但实际上我会提供一些单下拉列表将显示适用于所有编辑,显示,新操作的所有操作