开发者

Rails path tags conflicting, want urls like /post/some-title but when editing/updating use the ID not title

Having some issues, I want my urls for the show action to be like:

/post/some-title

i.e. so wherever I reference the show_post_path tag (or whatever it is) it should make开发者_C百科 that url.

BUT, when editing/updating I want to do this using the ID of the post ie.

/post/234/edit

How can I achieve this, it seems what I am doing is messing things up because I used:

def to_param
  #{title}"
end

In my post model.


I always add an attribute called 'slug' to posts and it acts as a slug for that post.
Then just find your posts with Post.find_by_slug(params[:id]).
You can even make it translatable.


Create a to_param method. For example:

def to_param
  "#{self[:id]}-#{title.gsub(/[^a-z0-9]+/i, '-')}"
end

Assuming the field you wanted to be in the URL is title, then your posts' URLs would be like /posts/1-this-is-a-post.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜