Tag: 路线

Rails路由与日期

我的问题是关于在rails应用程序的路由中按日期使用filter,目前我已经准备好了匹配routes.rb文件中日期模式的规则,它看起来像这样: match “itineraries/:day/:month/:year” => “itineraries#index”, :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ } match “itineraries/new/:day/:month/:year” => “itineraries#new”, :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ } resources :itineraries match ‘/:controller(/:action(/:id))’ root :to => “itineraries#index” 那个匹配例如/ itineraries / 01/01/2011,问题来自我从资源生成路由,例如,itineraries_path(:year => 2011,:month => 1,:day => 1)生成: /行程?天= 1个月= […]

如何处理自定义URL中的大写和小写字符?

我想让用户使用他们的注册用户名链接到他们的个人资料。 我准确地存储他们的用户名。 我设置了匹配/:name的路由,然后使用find_by_name来获取它。 我遇到的问题是当你输入example.com/username时,它的名称不起作用:Username。 (注意大写/小写的区别) 所以我的问题是如何忽略url中的案例?

Rails路由问题与控制器测试

我不知道我在这里做错了什么。 任何人有任何见解? 这是我的routes.rb resources :accounts do collection do get “search/:term/:offset/:limit.:format”, :action => “search”, :constraints => { :offset => /\d+/, :limit => /\d+/ } end end 这是我的佣金路线输出… GET /accounts/search/:term/:offset/:limit.:format {:offset=>/\d+/, :action=>”search”, :controller=>”accounts”, :limit=>/\d+/} 这是我的测试线…… get :search, :term => “Test”, :offset => 0, :limit => 2 这是我的错误…… ActionController::RoutingError: No route matches {:term=>”Test”, :action=>”search”, :controller=>”accounts”, :offset=>0, :limit=>2} 有任何想法吗? […]

命名空间内的浅路由:path param不起作用

此路线设置 namespace :api, path: nil, except: [:new, :edit] do resources :blogs do resources :comments end end 给了我这个,没关系。 GET /blogs/:blog_id/comments(.:format) api/comments#index POST /blogs/:blog_id/comments(.:format) api/comments#create GET /blogs/:blog_id/comments/:id(.:format) api/comments#show PATCH /blogs/:blog_id/comments/:id(.:format) api/comments#update DELETE /blogs/:blog_id/comments/:id(.:format) api/comments#destroy GET /blogs(.:format) api/blogs#index POST /blogs(.:format) api/blogs#create GET /blogs/:id(.:format) api/blogs#show PATCH /blogs/:id(.:format) api/blogs#update DELETE /blogs/:id(.:format) api/blogs#destroy 但是当我在上面的设置中添加“shallow:true”时 namespace :api, path: nil, except: [:new, :edit] […]

Rails 2.3.5:如何获取路由名称

在我的应用程序routes.rb我定义了三个路由,如下所示 map.signup ‘/signup’, :controller => ‘users’, :action => ‘new’ map.login ‘/login’, :controller => ‘sessions’, :action => ‘new’ map.logout ‘/logout’, :controller => ‘sessions’, :action => ‘destroy’ 我可以获取特定路径的控制器和操作名称吗? 我正在寻找像这样的方法…… def current_routes(a) end 应该返回:controller => ‘users’, :action => ‘new’如果我调用current_routes(‘signup_path’)

没有型号名称的路由

使用这个问题和railscast 63我已将我的文章发送到文章/ article_permalink。 我希望它们可以在URL中没有模型名称的情况下访问,因此my-domain.com/article_permalink直接路由到文章。 我只希望在show动作中发生这种情况。 这可能吗?

Rspec确保我们最终走上了正确的道路

有没有办法我们可以测试我们最终在rspec的预期路径? 就像是: it “should be the forgot password path” do response.should redirect_to(new_user_password_path) end 这给了我一个错误: Failure/Error: response.should redirect_to(new_user_password_path) ArgumentError: @request must be an ActionDispatch::Request

Rails:资源可以从两条路线到达,还是更好的方法?

我正在开发一个用户可以分享照片的应用。 照片可以选择属于集合,但不必。 目前,用户可以通过以下方式查看所有照片: photos/id 。 我认为如果他们可以通过collections/id/photos浏览特定馆藏的照片也是有意义的 因此,这意味着照片既是顶级资源又是嵌套资源。 我想我可以在这样的路线中设置它: resources :photos resources :collections do resources :photos end 这是一个好主意,还是有更好的方法来重用照片模型,同时还允许它在适当时作为嵌套在集合中? 我非常感谢关于处理这种情况的“轨道方式”的建议。 谢谢!

rails,为新路由添加参数

new操作通常不需要参数,因为它从头开始创建新资源。 在我的应用程序中,每当我创建某种类型的资源时,我都需要提供一个模板,这是另一book的ID。 所以我的new路线总是有一个参数。 我不知道如何将这个事实表示到routes.rb文件中。 因为我甚至不知道它是否可行,只是在它不是的情况下,那么我将创建一个new_wp,一个“new with parameter”动作。 我试着把它添加到我的 resources :books, :only => [:edit, :update, :show, :new] do member do get ‘new_wp/:template_id’, :action => ‘new_wp’ end end 但是rake路线说这不是我想要的: GET /books/:id/new_wp/:template_id(.:format) books#new_wp 也就是说,它有两个参数。

Controller#action中的NoMethodError – #User的未定义方法`keynote’:0x007fba0e32f760>

我正在构建一个具有Keynote模型和Story模型的应用程序(以及我用Devise实现的用户模型)。 主题演讲有许多故事和一个故事属于主题演讲。 我在创建新故事时遇到问题,我收到以下错误: StoriesController中的NoMethodError #create #User的未定义方法`keynote’:0x007fba0e32f760 该错误发生在stories_controller.rb的第18行 @story = @current_user.keynote.stories.build(params[:story]) 在create方法中。 这是我的stories_controller.rb的一部分 class StoriesController [:show, :index] def index @keynote = Keynote.find(params[:keynote_id]) @stories = @keynote.stories end def new @keynote = Keynote.find(params[:keynote_id]) @story = @keynote.stories.build end def create if user_signed_in? @keynote = Keynote.find(params[:keynote_id]) @story = @current_user.keynote.stories.build(params[:story]) if @story.save flash[:notice] = ‘Question submission succeeded’ redirect_to keynote_stories_path else render […]