Tag: 路线

使用布局响应所有HTML请求

我正在开发一个Rails应用程序,该应用程序将使用具有自己的路由function的客户端框架。 我想使用pushState路由,因此需要配置Rails路由器来响应这些请求(很简单)。 是否有一种简单的方法来设置具有有效路径的所有HTML请求,仅使用布局来响应,而不必使用一堆空白的action.html.erb文件来混淆我的视图文件夹?

轨道3中的自动生成路径?

从一些railscast( 特别是这个 )的外观来看,似乎有一些“* _path”变量的自动生成并没有发生在我身上。 在这个rails cast中,edit_mutliple_products_path似乎是自动生成的(我通常不喜欢使用该单词)。 当我按照相同的步骤尝试访问类似的路径时,我得到这个: undefined local variable or method `edit_multiple_distributions_workflows_path’ for #<#:0x132af3290>

Rails基于自定义REST方法生成的辅助路径失败

除了Rails默认定义的路由之外,还希望将自定义路由定义到某些资源。 为此,我的routes.rb文件的相关部分看起来像这样: resource :top, only: [:show] scope module: :top do resource :reso, only: [:show] end get ‘foo_reso’ => ‘top/reso#foo’ get ‘bar_reso’ => ‘top/reso#bar’ 如您所见,我只想要路由到ResoController的方法show , foo和bar 。 这有效,因为rake routes给出: reso GET /reso(.:format) top/reso#show foo_reso GET /foo_reso(.:format) top/reso#foo bar_reso GET /bar_reso(.:format) top/reso#bar 这样做:单击应用程序中的一个链接,将您带到路径foo_reso会导致调用ResoController#foo ,并随后显示相关视图。 但是,我认为路由定义只是稍微丑陋,而不是定义路由明确,希望Rails通过告诉它资源有两个额外的REST方法foo和bar来自动生成它们(同时仍然限制标准方法only:手段only:参数)。 我按照这个答案的建议,并将routes.rb更改为: resource :top, only: [:show] scope module: :top do resource :reso, […]

Rails 3,浅路线

在rails 2.x中我使用了浅层路由,但这似乎从rails 3中缺失(至少在API http://apidock.com/rails/ActionController/Resources/resources中 )。 当我在rails 3中传递此选项时,它不会抛出任何错误,但我也没有得到我期望的所有路径。 Rails 3 routes.rb resources :users, :shallow=>true do resources :recipe do resources :categories do resources :sections do resources :details do end end end end end 缺少使用rails 2.x等效生成的路由(只是配方资源的示例): 获取new_recipe(我只有new_user_recipe),和 POST食谱(创建新食谱,我只有POST user_recipe) 有意义的是,这些路由不会被生成,但是我的旧代码通过在每种forms中传递user_id来解决它(不太优雅,同意)。 问题是:轨道3中是否存在“浅层”路线的文档? 有没有办法生成我在rails 2.x中缺少的路由? 谢谢,迈克

Rails:路由和路径助手

可能重复: Rails:没有复数的路由给出了奇怪的帮助 结果我有:资源qtl_table在config / routes.rb两次! 我收到此错误: undefined local variable or method `search_qtl_table_index’ for #<#:0x805af47b0> 在app / views / qtl_table / index.html.erb中: Search for QTL ‘get’ do %> nil %> 在config / routes.rb中: Qtl::Application.routes.draw do resources :qtl_table do collection do get ‘search’ end end … end 我确实关闭了复数: ActiveRecord::Base.pluralize_table_names = false 耙路线的输出: search_qtl_table_index GET /qtl_table/search(.:format) {:action=>”search”, :controller=>”qtl_table”} […]

Rails删除链接嵌套路由

我正在写一个简单的待办事项应用程序,项目和项目有很多任务。 我希望能够删除项目中的任务。 但是当我尝试link_to一个删除方法时,我得到了未定义的方法’task_path’。 查看代码 :delete %> 任务控制器 def destroy @project = Project.find(params[:project_id]) @task = @project.tasks.find(params[:id]) @task.destroy redirect_to @project, :notice => “Task Deleted” end 的routes.rb resources :projects do resources :tasks end 更新:所以我删除了工作。 但是现在我正在迭代每个任务,有一个额外的删除链接,它路由到http://todoapp.dev/projects/9/tasks并给出无路由匹配[DELETE]“/ projects / 9 / tasks”为什么是那里有额外的删除链接? :delete %>

Mass 301在Rails 3中重定向

我们已经建立了数千个产品url,同时使用Magento作为我们的购物车应用程序,这些url根本不直观或SEO友好,尽管已经建立了我们的搜索排名。 我们正在转换到Rails 3(Spree作为我们的购物车),并希望清理我们的URL。 我想知道在Rails中处理潜在的数千个301重定向的最简洁方法是什么? 很多在routes.rb中的硬编码似乎并不健全。 可能相关的信息: 至少在接下来的几个月里,我们与Heroku联系在一起。

Rails url路径和资源路由

我有一个具体的问题。 所以如果没有人帮助我,我会理解的。 :)无论如何,提前谢谢! 如何使用资源和restful协议重构此代码? 特别是我的意思是render_with_hashtags_of_question(text)和render_with_hashtags_of_answer(text)方法和相关路线get ‘/questions/hashtag/:name’, to: ‘questions#hashtags’ 问题模型: require ‘active_support/all’ class Question < ActiveRecord::Base TAG_REGEX = (/#[\p{L}_]+/) belongs_to :user belongs_to :author, class_name: 'User' has_and_belongs_to_many :tags validates :text, :user, presence: true validates :text, length: { maximum: 255 } after_save :add_hashtags after_commit do self.tags.clear add_hashtags end private def add_hashtags hashtags = self.text.scan(TAG_REGEX) hashtags << self.answer.scan(TAG_REGEX) if […]

调用Rails.application.routes.generate()或Rails.application.routes.recognize_path()时出现’RuntimeError:route set not finalized’

我在我的应用程序中使用Rails.application.routes.generate()和Rails.application.routes.recognize_path()来使用Rails路由表反汇编和生成URL。 我从来没有遇到过使用Rails 2.3.x系列的问题但是因为Rails 3(特别是3.1.3)我在调用这些命令时遇到了以下错误 RuntimeError: route set not finalized 两个问题: 为什么? 我得到了这个 – 我的应用程序启动并运行并处理其他请求。 为什么现在还没有最终确定路线? 要解决这个错误,我调用Rails.application.routes.finalize! 在调用这些方法之前,因为它似乎工作。 这样做会有什么影响吗?

覆盖嵌套的命名路由参数

来自Rails 文档 ,人们可以简单地这样做: resources :videos, param: :identifier 但是,如果我有嵌套资源怎么办? 这是路线: resources :videos resources :images end 以上生成如下路线: video_images GET /videos/:video_id/images(.:format) images#index 如何覆盖路线中的:video_id ? 在这种情况下,我似乎无法使用param 。