这可能很容易实现,但找不到任何有此答案的地方(我在路径中看到的所有路径都会出现在这个视图中)。
我正在使用第三方gem,需要回调控制器来构建输出。
在我回电话中,我正在传回一条带有完整路径的字符串。但是,如何获取路径的路径以将其转换为字符串?
路线示例:
get 'edit-it/:id', to: 'controller#action', as: :edit_it
控制器回调:
def button_output
# TODO: How to pass route to string with the id I need of the current
# object in callback.
id = 84848484
# I've tried (and none seem to work)
# send(:edit_it_path)
# :edit_it
# :edit_it_path(id)
# :edit_it(id)
# edit_it_route = edit_it(id) # And combo of all those above
"<a href=\"#{route_path_goes_here_with_id}\">Edit</a>".html_safe
end
这是一个非常简化的版本,但通常我似乎找不到。
我错过了什么吗?
再次感谢!
答案 0 :(得分:0)
更新您的路线配置以接受id
参数:
get 'edit-it/:id', to: 'controller#action', as: :edit_it
您还可以添加id
在路线中的约束条件;例如只允许数字:
get 'edit-it/:id', to: 'controller#action', as: :edit_it, constraints: { id: /\d+/ }
然后将其用作:
"<a href=\"#{edit_it_path(id)}\">Edit</a>".html_safe
或(在视图文件中),
<%= link_to 'Edit', edit_it_path(id) -%>
并在您的控制器中:
link_to('Edit', edit_it_path(id))