【问题标题】:How to create URL by using value of a column as param in rails如何通过使用列的值作为rails中的参数来创建URL
【发布时间】:2015-09-29 07:08:12
【问题描述】:

我有一个收藏夹表,每个 visitor_id 都是一个随机字符串

         Favorites
-------------------------
| visitor_id | place_id |
-------------------------
| aab1       |     1    |
-------------------------
| aab2       |     2    |
-------------------------
| aab3       |     3    |
-------------------------
| ....       |   ...    |
-------------------------

现在,我想创建一个链接到每个 visitor_id 的 url。我要创建的网址是这样的:

favorites/visitor/:visitor_id

例如:

favorites/visitor/aab1
favorites/visitor/aab2
favorites/visitor/aab3

为了实现这一点,我应该在 route.rb 和 favorites_controller.rb 或 favorite.rb 模型中编写什么正确的语法?以及如何让视图根据URL显示visitor_id?

例如:

favorites/visitor/aab1  ==> Display aab1 in view
favorites/visitor/aab2  ==> Display aab2 in view
favorites/visitor/aab3  ==> Display aab3 in view

PS:我没有访客控制器、模型或表格。提前致谢!

【问题讨论】:

    标签: ruby ruby-on-rails-4 routes


    【解决方案1】:

    下面的代码应该可以工作

    #routes.rb
    get "/favorites/visitor/:visitor_id", to: 'favorites#visitor', as: 'favorites_visitor'
    

    上述路线将您带到 favorites/visitor/1 favorites/visitor/aab1 之类的 url,但如果您希望它为 favorites/visitor/aab1,您应该使用 friendly_id gem 来生成这些 url.

    上面的路由还需要一个名为visitor的方法,定义在favorites_controller.rb

    注意:

    我完全忘记了visitor_id 的值是一个随机字符串,所以你不需要friendly_id gem。我打那些线来反映它。

    更新:

    如何创建链接以链接到特定的访问者 ID

    您可以使用以下链接,

    <%= link_to "Visitor", favorites_visitor_path(@visitor) %>
    

    假设您在 favorites_controller.rb 的特定方法中定义了 @visitor

    【讨论】:

    • 谢谢。现在它起作用了。但是我怎样才能创建一个链接来链接到一个特定的visitor_id。例如:链接到“favorites/visitor/aab1”的链接?
    • @PeterNguyen 太好了!请勾选绿色接受我的回答:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 2015-06-29
    • 2023-04-07
    • 1970-01-01
    • 2013-05-11
    • 2021-04-24
    相关资源
    最近更新 更多