2016-04-05 5 views
2

Ich verwende Comments-Tabelle als polymorphe Assoziationen. Wenn ich den Kommentar speichere, wird er auf das jeweils zugehörige Modell umgeleitet. Ich möchte, dass ein Anker-Tag übergeben wird, um automatisch nach unten zu blättern und die Kommentare anzuzeigen. Ich versuche die folgenden aber die Anker-Tag vergeht nicht auf die URLRails Redirect zu einem Anchor-Tag vom Controller

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

Rake Routen

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 
+0

haben Sie versuchen, ohne Hash-Tag verwenden 'redirect_to @commentable,: anchor =>‚comments'' – 7urkm3n

+0

ja nicht funktioniert :( –

+0

wo '@ commentable' ein umleitet Seite? – 7urkm3n

Antwort

3

Entfernen Sie die # Symbol in Ihrem Anker-String und anchor: innerhalb der URL-Helfer-Methode aufrufen: redirect_to comments_path(anchor: 'anchor_tag')

+0

Da es polymorph ist, kann ich den Pfad nicht erzeugen, habe meine Frage mit den Routen aktualisiert –

+0

Was? Wenn Sie die URL als einfache Zeichenfolge umleiten und den Anker an die Zeichenfolgen-URL "/ my_url #' "anhängen? –

+0

absolut das ist was ich versuche. aber die Verwarnung geschieht zu @commentable, die von polymorphen Wegen abstammen wird –

2

In Ordnung, von Schienen DOCurl_for() Methode sollte URL des angegebenen Objekts zurückgeben.

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

wenn seine verschachtelten dann url_for([@product, @comment])

Verwandte Themen