Tag: 路由

rails – 如何使用参数进行GET请求操作

我希望这个问题相当简单,因为我对rails开发相对较新。 我试图从具有指定操作的控制器发出get请求并传递所需的参数。 这是助手类中的相关代码: module ChartsHelper def chart_tag (action, height, params = {}) params[:format] ||= :json path = charts_path(action, params) content_tag(:div, :’data-chart’ => path, :style => “height: #{height}px;”) do image_tag(‘loading.gif’, :size => ’32×32′, :class => ‘spinner’) end end end 以及ChartsController中的相应操作: class ChartsController { :type => ‘AreaChart’, :cols => [[‘string’, ‘Date’], [‘number’, ‘subscriptions’]], :rows => (1..days).to_a.inject([]) do […]

Sinatra的子路由

有没有办法可以将不同的控制器映射到彼此相关的URL,特别是当一个是另一个的子资源时? 更具体地说,这是一个例子: 我有两种类型的资源: jobs和articles 。 job包含多articles 。 尽管他们有关系,但我想在单独的文件中处理与每个相关的实际代码。 因此,我有: helpers/job_api.rb和 helpers/article_api.rb 他们每个都像这样扩展SinatraBase: class ArticleAPI < Sinatra::Base register Sinatra::Async get '/list' do #… end end 我现在想要的是将所有属于作业的URL请求映射到JobAPI和属于文章的JobAPI (但仍然始终与ArticleAPI的单个作业相关联)。 我的config.ru看起来像这样: $ LOAD_PATH <<'。' 需要'服务器' map “/” do run Sinatra::Application end map “/job” do run JobAPI end map “/job/:job_id/article” do run ArticleAPI end 但是,当我尝试转到url /job/12/article/list时,这不起作用。 有人知道有没有办法做到这一点? 谢谢

PostsController#中的ActiveRecord :: RecordNotFound显示单击链接

错误 ActiveRecord::RecordNotFound in PostsController#show Couldn’t find Post with id=morecommented Request Parameters: {“id”=>”morecommented”} 我在哪里做错了? postscontroller #show action def show @post = Post.find(params[:id]) … end morecommented.html.erb ‘/posts’, :action => ‘show’, :id => t.id %> 耙路线 post GET /posts/:id(.:format) {:action=>”show”, :controller=>”posts”} …. posts_morecommented /posts/morecommented(.:format) {:controller=>”posts”, :action=>”morecommented”} routes.rb中: resources :posts match “posts/:id/categ” => “posts#categ” match “posts/:id/tag_posts” => “posts#tag_posts” match […]

设计注销路由错误

我在Rails 3.0.3应用程序中使用Devise 1.5.1。 它运作良好,但有一个例外:注销链接给我这个错误: 路由错误 未初始化的常量UsersController 导致这种情况的链接是: :delete) %> 我还没有创建app / controllers / user_controller.rb文件,但是我的理解是在使用Devise时没有必要,对吗? 如果它是相关的,我的routes.rb文件看起来像: Su::Application.routes.draw do get “group/create” devise_for :users resources :users resources :payers resources :payments resources :categories resources :groups match “adduser”, :to => “groups#adduser” root :to => “pages#home” end …和app / models / user.rb看起来像: class User < ActiveRecord::Base # Include default devise modules. […]

每次`params`包含`redirect_uri`值时,如何将用户重定向到自定义网页?

我正在运行Ruby on Rails 4.1,我希望实现一个function,当用户通过提供redirect_uri参数执行操作时,将用户重定向到自定义网页。 换句话说,我希望每次在params出现redirect_uri值时“触发”重定向,并且重定向应该在任何情况下发生(例如,当使用HTML或JS格式执行GET,POST,PUT和DELETE HTTP请求时) )在完成流程流程之后(例如,当HTTP动词为POST时,重定向应在提交后发生)。 奖励 – 如果可能,我想在引荐来源url来自应用程序域之外的情况下validationURL(例如,链接正确性)。 我应该如何正确地做到这一点?

在Rails中整合凌乱的路由4.如何组织路由而不是将URL指向静态链接?

这里有一个rails nub组织问题: 存在的是什么 一个“Railsy”链接看起来像这样(苗条) span a href= signout_path signout_path对应于AuthController#signout 。 因此,在我的应用程序中有几种类型的用户 – 消防员,酋长和队长。 每个人都有非常相似的路线: /dashboard /dashboard/:date ( this is in case they want to see a previous date; same dashboard, different data in the controller ) /account /account/update /entry/view /entry/edit 参赛作品可能属于也可能不属于用户。 因为条目应该对任何用户可见(尽管不是相关的操作) 看看我恶心的路线: scope :firefighters do get ‘/dashboard’ => ‘firefighters#dashboard’ get ‘/dashboard/:date’ => ‘firefighters#dashboard’ get […]

Rails名称空间和路由

我需要帮助。 我想管理我的rails应用程序。 我尝试使用命名空间设置路由,但命名空间需要资源,资源必须在get请求中具有id。 有谁知道如何正确设置? 我用的是windows机器。 谢谢。 我的路线: Web::Application.routes.draw do namespace :admin do resources :access # GET http://localhost/admin/access/login/login – stupid?? end match ‘:controller(/:action(/:id))(.:format)’ end

如何从多个位置重定向到上一页?

我可能在这里错过了一些非常简单的东西…… 假设我有名为Option模型。 然后,我在视图中列出这些选项,使用启用/禁用按钮导致控制器操作,然后启用或禁用该特定Option 。 如果列表只在一个地方,我知道只需要调用redirect_to或render让用户返回到正确的页面,因为只有一个。 如果同一个列表在多个位置怎么办? 意思是,如果只有一个控制器具有启用/禁用操作,如何让该控制器将用户“返回”到他们单击按钮的页面? 我想过将上一页保留在会话变量或其他内容中,但这似乎是错误的。

你如何从Sinatra中删除路线?

我有一些动态加载的插件,它们在启动时注册它们的路由,但是我还需要能够在它们被禁用时删除它们的路由。 有没有办法删除现有路线? API没有任何我可以找到的方法来删除它们,我能想到的另一种方法就是直接进入Sinatra :: Base的@routes对象,但我不确定你是否可以做任何事情,如果可以……这样做是否安全?

Rails Sti:单路径,不同的控制器

有STI课程: class Page < ActiveRecord::Base belongs_to :user end class FirstTypePage < Page end class SecondTypePage < Page end 每个class级的控制器, class PageController < AplicationCorroller end class FirstTypePageController < PageController end class SecondTypePageController < PageController end 和路线: resources :user resource :page end 如何通过FirstTypePageController处理FirstTypePage,SecondTypePage由单一路径上的SecondTypePageController处理? 即 user / 1 / page / 2由以下处理:FirstTypePageController如果“page 2”类型是“FirstTypePage”,则通过SecondTypePageController如果“page 2”类型是“SecondTypePage”? 更新:我的解决方案: match ‘user/:user_id/page/:action’, :controller=>’page/first_type_page’, […]