【问题标题】:How to pass value from js to html.erb render function如何将值从 js 传递给 html.erb 渲染函数
【发布时间】:2013-09-20 13:18:24
【问题描述】:

我有一个部分,我必须向其发送一个参数 -> update_path,我从 javascript 函数 window.location.href 获得,有什么办法可以做到吗?例如
<%= render('abc', :update_path => 'path') %>

可以设置渲染部分参数的update_path值吗?

【问题讨论】:

  • 语法为render(:partial =>'abc', :locals => { update_path => 'path' })
  • 不清楚,能否补充更多信息?
  • @MrYoshiji 他的语法实际上很好用。见api.rubyonrails.org/classes/ActionView/Helpers/… - “如果没有传递选项散列或:update指定,默认是渲染一个部分并使用第二个参数作为本地散列”
  • @MrYoshiji 我正在渲染这个局部视图。我需要通过js发送当前视图的位置作为update_path参数的值
  • 你真的不能那样做,JS是在客户端(浏览器)执行的,而ruby代码是在服务器端执行的

标签: javascript ruby-on-rails erb


【解决方案1】:

您是否有理由需要为此使用 JavaScript?如果没有,你可以直接通过 Rails 访问当前的完整 URL:

render "abc", :update_path => request.original_url

request.original_url 会给你类似于http://mysite.com/my_controller/my_action?my_params=... 的东西(即它包括 full url,而不仅仅是主机/端口之后的部分)。如果您只需要路径部分,您可以执行request.fullpath,这将为您提供/my_controller/my_action?my_params=...

请参阅How do I get the current absolute URL in Ruby on Rails? 了解更多信息。

【讨论】:

    猜你喜欢
    • 2019-08-13
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 2019-04-11
    • 2018-11-18
    • 1970-01-01
    相关资源
    最近更新 更多