2016-07-25 13 views
0

In meiner Rails App habe ich einen Posts-Abschnitt, um von Benutzern eingereichte Inhalte zu ermöglichen. Standardmäßig entspricht die Konvention für URLs für neue Posts etwa yoursite/posts/8. Ich frage mich, ob jemand weiß, ob es für eine Methode für Benutzer möglich ist, eine benutzerdefinierte URL-Route dafür zu erstellen, wie einen neuen Post zu erstellen und dann eine Zeichenfolge mit "benutzerdefinierter URL" zu haben, so wird es etwa 'yoursite/posttopic'. Weiß jemand, wie man das machen könnte? Vielen Dank!Rails: Benutzerdefinierte URL für Beiträge

Beitrag Schema sieht wie folgt aus:

create_table "posts", force: :cascade do |t| 
    t.string "title" 
    t.text  "body" 
    t.datetime "created_at",   null: false 
    t.datetime "updated_at",   null: false 
    t.integer "user_id" 
    t.string "image_file_name" 
    t.string "image_content_type" 
    t.integer "image_file_size" 
    t.datetime "image_updated_at" 
    end 
+0

Sie sind wahrscheinlich für die [friendly_id] (https://github.com/norman/friendly_id) gem suchen. –

Antwort

1

Verwenden friendly_id gem. Aktualisiert Beispiel von seinem Quick start guide:

# edit app/models/post.rb 
class Post < ActiveRecord::Base 
    extend FriendlyId 
    friendly_id :title, use: :slugged 
end 

Post.create! title: "posttopic" 

# Change Post.find to Post.friendly.find in your controller 
Post.friendly.find(params[:id]) 
rails server 

Jetzt können Sie diese verwenden:

GET http://localhost:3000/posts/posttopic 
+0

Gibt es eine Möglichkeit, den/posts-Teil herauszunehmen? und mach es einfach/3000/customURL –

+0

Sicher, in deinem 'routes.rb' hast du das:' resources: posts, path: '/' '. –

+0

Hallo, friendly_Id war genau das, was ich brauchte. Vielen Dank! –

Verwandte Themen