Rails Redirect to an Anchor Tag from the Controller

I am using Comments table as polymorphic associations. When i save the comment and it redirects to the respective associated model. I want it to pass an anchor tag to auto scroll down to display the comments. Am trying the following but the anchor tag is not passing to the url

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

<strong>Rake Routes</strong>

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

Answer1:

Remove the # symbol in your anchor string and call anchor: within the url helper method: redirect_to comments_path(anchor: 'anchor_tag')

Answer2:

Alright, from rails DOC url_for() method should return URL of given object.

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

if its nested then url_for([@product, @comment])

人吐槽 人点赞

Recommend

Comment

用户名: 密码:
验证码: 匿名发表

你可以使用这些语言

查看评论:Rails Redirect to an Anchor Tag from the Controller