在rails中更改post /:id以显示post /:restname

时间:2014-11-21 04:18:38

标签: ruby-on-rails-4 friendly-id

我还是Rails的新手,我对路线有疑问。

现在,我可以正常使用帖子表中的资源。

post_path   GET             /posts/:id(.:format)    posts#show
            PATCH           /posts/:id(.:format)    posts#update
            PUT             /posts/:id(.:format)    posts#update
            DELETE          /posts/:id(.:format)    posts#destroy

无论如何,当我点击节目页面时,而不是地址栏说:

http://localhost:3000/posts/3 
我可以说:

http://localhost:3000/posts/restaurantName  ? 

:restname是具有餐馆名称的用户中的列。

我正在为餐馆工作人员构建一个网络应用程序,我希望地址以餐馆名称结尾,特别是Post.user.restname。

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

请检查:https://github.com/norman/friendly_id

让我知道它是否有用。

此外,本文还帮助您将FriendlyId与rails 4应用程序集成:http://richonrails.com/articles/friendlyid-and-rails-4

答案 1 :(得分:1)

是的,Rails具有使网址非常友好的灵活性。为此我们有一个名为friendly_id的宝石,它对这些要求非常有帮助,ryanbates给出了如何使用这个宝石并集成到我们的rails应用程序中的最佳轨迹

请检查此网址 http://railscasts.com/episodes/314-pretty-urls-with-friendlyid

您还可以查看以下链接:https://github.com/norman/friendly_id

一定会对你有所帮助。

答案 2 :(得分:0)

我的声誉不够高,所以我不喜欢你的评论,但如果可以的话,我愿意。

由于我的表格设置方式,我需要的信息是在用户之下,我希望用我的帖子更改用户信息下的地址。最后,我能得到的最接近的是使用参数化。

在我的帖子控制器中:

45   @post = Post.new(post_params)
46   if @post.save 
47     @post.update :postname => @post.user.restname
48     redirect_to @post
49   else

在我的帖子模型中:

13   def to_param
14     "#{id} #{postname}".parameterize
15   end