【问题标题】:How to add object id to end of rails path? [closed]如何将对象 ID 添加到导轨路径的末尾? [关闭]
【发布时间】:2020-10-21 10:56:06
【问题描述】:

在我的通知模型中,我有一个名为 'link_path' 的字段,它会输出如下内容:

national_races/36/?notification_id=

当我遍历这些通知时,我试图将通知 ID 附加到链接路径的末尾。

<% @x.each do |notify| %> 

<% @a = notify.id  %> 

<%= link_to notify.link_path + @a do %>

希望最终得到类似的结果:

national_races/36/?notification_id=44 

其中 44 可能是通知 ID。但我只是不断得到:

nil:NilClass 的未定义方法 `+'。

似乎我无法将一些字符串连接到我的 rails 路线的末尾?我该怎么办?

notify.link_path 本身可以正常工作,但无法将此 id 传递到 url 末尾

【问题讨论】:

  • 能否展示模型和控制器的相关代码?你的路由文件是什么样的?
  • 你能展示你想要实现的最终 HTML 吗?
  • 我建议你关闭这个;它与您的其他链接问题直接相关,我认为您现在已经得到了一个有效的答案(并且该问题具有您问题的所有上下文/代码)。虽然我会说NilClass 错误可能是因为并非所有notify 对象都有link_path 集。
  • ok 将关闭这个
  • 绝对应该使用路由定义创建链接,而不是模型中的方法。这样你就可以做类似link_to 'some text', notification_path(@a)

标签: ruby-on-rails ruby routes


【解决方案1】:

您可以尝试如下:-

##语法:-

<%= link_to "Link name", link_path(:foo => "bar", :baz => "quux") %>

根据您的代码:-

<%= link_to "Notify link path", notify.link_path(notification_id: notify.id) do %>

API docs on link_to 显示了一些 link_to rails 的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多