Rails从Controller重定向到Anchor标记

时间:2016-04-05 05:13:45

标签: ruby-on-rails ruby-on-rails-4 anchor

我使用Comments表作为多态关联。当我保存评论并重定向到相应的关联模型。我希望它传递一个锚标记自动向下滚动以显示注释。我尝试以下但锚标签没有传递到网址

@comment = @commentable.comments.new comment_params
    @comment.user = current_user
    @comment.save
    redirect_to @commentable, :anchor => '#comments'

Rake Routes

Prefix Verb   URI Pattern                                   Controller#Action
                    rate POST   /rate(.:format)                               rater#create
        new_user_session GET    /users/sign_in(.:format)                      devise/sessions#new
            user_session POST   /users/sign_in(.:format)                      devise/sessions#create
    destroy_user_session DELETE /users/sign_out(.:format)                     devise/sessions#destroy
           user_password POST   /users/password(.:format)                     devise/passwords#create
       new_user_password GET    /users/password/new(.:format)                 devise/passwords#new
      edit_user_password GET    /users/password/edit(.:format)                devise/passwords#edit
                         PATCH  /users/password(.:format)                     devise/passwords#update
                         PUT    /users/password(.:format)                     devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)                       devise/registrations#cancel
       user_registration POST   /users(.:format)                              devise/registrations#create
   new_user_registration GET    /users/sign_up(.:format)                      devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)                         devise/registrations#edit
                         PATCH  /users(.:format)                              devise/registrations#update
                         PUT    /users(.:format)                              devise/registrations#update
                         DELETE /users(.:format)                              devise/registrations#destroy
                    root GET    /                                             welcome#index
                 artists GET    /artists(.:format)                            artists#index
                         POST   /artists(.:format)                            artists#create
              new_artist GET    /artists/new(.:format)                        artists#new
             edit_artist GET    /artists/:id/edit(.:format)                   artists#edit
                  artist GET    /artists/:id(.:format)                        artists#show
                         PATCH  /artists/:id(.:format)                        artists#update
                         PUT    /artists/:id(.:format)                        artists#update
                         DELETE /artists/:id(.:format)                        artists#destroy
          album_comments GET    /albums/:album_id/comments(.:format)          albums/comments#index
                         POST   /albums/:album_id/comments(.:format)          albums/comments#create
       new_album_comment GET    /albums/:album_id/comments/new(.:format)      albums/comments#new
      edit_album_comment GET    /albums/:album_id/comments/:id/edit(.:format) albums/comments#edit
           album_comment GET    /albums/:album_id/comments/:id(.:format)      albums/comments#show
                         PATCH  /albums/:album_id/comments/:id(.:format)      albums/comments#update
                         PUT    /albums/:album_id/comments/:id(.:format)      albums/comments#update
                         DELETE /albums/:album_id/comments/:id(.:format)      albums/comments#destroy
                  albums GET    /albums(.:format)                             albums#index
                         POST   /albums(.:format)                             albums#create
               new_album GET    /albums/new(.:format)                         albums#new
              edit_album GET    /albums/:id/edit(.:format)                    albums#edit
                   album GET    /albums/:id(.:format)                         albums#show
                         PATCH  /albums/:id(.:format)                         albums#update
                         PUT    /albums/:id(.:format)                         albums#update
                         DELETE /albums/:id(.:format)                         albums#destroy
           song_comments GET    /songs/:song_id/comments(.:format)            songs/comments#index
                         POST   /songs/:song_id/comments(.:format)            songs/comments#create
        new_song_comment GET    /songs/:song_id/comments/new(.:format)        songs/comments#new
       edit_song_comment GET    /songs/:song_id/comments/:id/edit(.:format)   songs/comments#edit
            song_comment GET    /songs/:song_id/comments/:id(.:format)        songs/comments#show
                         PATCH  /songs/:song_id/comments/:id(.:format)        songs/comments#update
                         PUT    /songs/:song_id/comments/:id(.:format)        songs/comments#update
                         DELETE /songs/:song_id/comments/:id(.:format)        songs/comments#destroy
                   songs GET    /songs(.:format)                              songs#index
                         POST   /songs(.:format)                              songs#create
                new_song GET    /songs/new(.:format)                          songs#new
               edit_song GET    /songs/:id/edit(.:format)                     songs#edit
                    song GET    /songs/:id(.:format)                          songs#show
                         PATCH  /songs/:id(.:format)                          songs#update
                         PUT    /songs/:id(.:format)                          songs#update
                         DELETE /songs/:id(.:format)                          songs#destroy
                         GET    /get_albums_of_artist/:artist_id(.:format)    songs#get_albums_of_artist

2 个答案:

答案 0 :(得分:5)

删除锚点字符串中的anchor:符号,并在网址助手方法中调用redirect_to comments_path(anchor: 'anchor_tag'):{{1}}

答案 1 :(得分:2)

好吧,来自rails DOC url_for()方法应该返回给定对象的URL。

redirect_to "#{url_for(@commentable)}#comments"

如果它嵌套了url_for([@product, @comment])