Tag: 路线

使用Devise和Omniauth的路由问题

我试图让OAuth和Devise一起工作,但我得到Controller::RoutingError (No route matches “/users/auth/facebook/callback”):当试图通过Facebook进行身份validation时。 奇怪的是,Google Apps不会出现此问题。 (相同的回调路线)。 有任何想法吗? callback_controller: class Users::OmniauthCallbacksController “Facebook” sign_in_and_redirect @user, :event => :authentication else session[“devise.facebook_data”] = env[“omniauth.auth”] redirect_to new_user_registration_url end end def google_apps @user = User.find_for_google_apps_oauth(env[“omniauth.auth”], current_user) if @user.persisted? flash[:notice] = I18n.t “devise.omniauth_callbacks.success”, :kind => “Google Apps” sign_in_and_redirect @user, :event => :authentication else session[“devise.google_apps_data”] = env[“omniauth.auth”] redirect_to new_user_registration_url end end […]

我们如何以干燥的方式使用带有angularjs的rails路由?

首先,我会为我破碎的英语和破碎的代码表示遗憾……(这里有很多单词来自谷歌翻译……所以,我担心我不能说清楚……所以,我粘贴所有代码…) 在rails中设置路由非常简单。 但是当我们想把它变成angurjs时,它会变得有点冗长……对于这类工作是否有任何“最佳实践”: 给出一些rails路由资源: resources :users resources :photos … resources :topics 怎么做有角度的一面? 这是我的方式(在咖啡脚本中,使用角度1.1.4 ): 以Rails方式使用RESTful服务: # angular/services/restful.js.coffee # RESTful resource following Rails route’s convention # index: GET ‘/resource.json’ # save: POST ‘/resource.json’ # get: GET ‘/resource/:id.json’ # update: PUT ‘/resource/:id.json’ # edit: GET ‘/resource/:id/edit.json’ # new: GET just use get, id: ‘new’ app.factory(‘RESTful’, [‘$resource’, ($resource)-> […]

如何使用Rails命名路由助手与参数?

鉴于这条路线 match ‘posts/hello/:name/:title’ => ‘post#show’, :as => :hello 我可以调用hello_path的方式是什么? 如果我调用hello_path(@post) ,它会尝试做什么? 我希望:name和:title文件会自动绑定到路径,但似乎rails只知道如何从模型对象中获取:id。 相反,它只有在我称之为的情况下才有效 @post.name, :title=>@post.title) %> (缺乏适当的文件真的让我伤心)

rails 3 – 一个应用程序,多个域,如何为其中一个域实现不同的“根”路由?

几个不同的域名指向heroku上的我的应用程序,例如foo.com和bar.com都指向该应用程序。 (我们托管专门的博客页面,foo.com是我们创建网页的用户所使用的域名,而bar.com是博客页面所在的“面向公众”的域名。) 所有用户编辑页面都有Devise身份validation,foo.com上的“root”是用户的仪表板页面。 登录用户可以在foo.com/reviewpage/USERID预览他们的博客页面 每个用户帐户还有一个独特的“友好url名称”,例如“acme-inc-dallas-tx” 在面向公众的网页bar.com上(但只有这一个域名),我需要以某种方式映射 http://bar.com/friendly-url-name to:controller => mycontroller,:action => myaction 我认为这意味着我需要将bar.com(但仅限bar.com)上的“root”重新映射到查找相应页面并显示它的方法“find_friendly_url”。 如果这是正确的继续进行方式…我将如何为一个且仅指向我的应用的一个域重新映射“root”?

当用户无法使用Devise登录时重定向问题

在我的应用程序中,我使用Devise对用户进行身份validation,我注意到如果登录失败,您可以更改重定向到的页面。 在维基上,我找到了以下示例: class CustomFailure ‘secure’) end # You need to override respond to eliminate recall def respond if http_auth? http_auth else redirect end end end 在这个例子之后,我创建了自己的CustomFailure类(custom_failure.rb)并放在帮助文件夹中(不知道放在哪里)。 这是我创建的以下课程: class CustomFailure ‘secure’) end # Redirect to root_url def respond if http_auth? http_auth else root_url end end end 我还在config / initializers / devise.rb文件中添加了以下内容(因为wiki状态应该完成): config.warden do |manager| manager.failure_app = […]

如何在Rails的map.resources()中重命名默认标识符param“id”?

我喜欢Rail的map.resources生成的所有默认路由。 但是,有些情况下我想在我的路线中使用非数字标识符。 例如,如果嵌套路由由用户及其文章组成,则可以按如下方式编写标准路由: map.resources :users, :has_many => [:articles] # => eg ‘/users/:id/articles/:id’ 但是,有许多优点/原因不使用Rails生成的默认数字标识符。 有没有办法将默认值:id params替换为我选择的另一个规范标识符,而不会为每个标准操作编写自定义路由? 如果我想要一个以下格式的路线: ‘/users/:login/articles/:id’ 这种路线是否可以使用map.resources实现?

Rails:提供静态资产的路由(如.jpgs等?)

我已经解决了许多有趣的路由问题 – 将请求URL转换为哈希等等,但出于好奇,有没有办法告诉路由系统你想要任何属于某个url的东西字面上要服务的子路径 – 不通过控制器? 例如,如果我有/home/me/public_html/rails_proj/images/foo.jpg和… / rails_proj / images / other / bar.jpg,我可以插入一条说“图像下的任何内容应该只是作为默认mime类型的对象?“ 可能很有趣。

Rails可安装引擎在动态范围内

说我有这些路线: scope ‘(:locale)’, :locale => /en|de/ do mount Users::Engine => “users”, as: ‘users_engine’ end 并在引擎视图中: 我明白了 /en/users/users/new?locale=de 代替 /de/users/users/new 我已经包含在应用程序控制器中: def set_locale if params.include?(‘locale’) I18n.locale = params[:locale] Rails.application.routes.default_url_options[:locale] = I18n.locale end end 它在主应用程序中工作正常 我找到了一种方法来获得正确的url Users::Engine.routes.url_for controller: ‘users/users’, action: :new, only_path: true, locale: :de 但我认为应该有更好的方法,如果我在布局中制作更改区域设置链接怎么办? 我不知道这可能是哪个引擎 谢谢你。

Rails路由匹配查询参数

Rails路由非常适合匹配URL的RESTful样式‘/’分隔位,但我可以匹配map.connect配置中的查询参数。 我希望调用不同的控制器/动作 ,具体取决于’?’后面是否存在参数 。 我正在尝试这样的事…… map.connect “api/my/path?apple=:applecode”, :controller => ‘apples_controller’, :action => ‘my_action’ map.connect “api/my/path?banana=:bananacode”, :controller => ‘bananas_controller’, :action => ‘my_action’ 出于路由目的,我不关心参数的值,只要它在params散列中可用于控制器

rails设计,没有路由匹配注销

虽然有很多类似的问题,但我已经搜索了几个小时,但仍无法修复它。 Env rails 3.0.9 ruby​​ 1.9.2 devise 1.4.2 我使用以下命令更改了默认登录URL: 5 resources :users 6 devise_for :users, :path => “”, :path_names => { :sign_in => ‘login’, :sign_out => ‘logout’, :password => ‘secret’, :confirmation => ‘verification’, :unlock => ‘unblock’, :registration => ‘register’, :sign_up => ‘cmon_let_me_in’ } http:// localhost:3000 / login对我来说很好但是我包含了 = link_to ‘sign_out’, destroy_user_session_path, :method => :delete 在我的application.haml中,点击它之后,它说没有路由匹配“/ […]