Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在rails中使用jquery重定向_Jquery_Ruby On Rails_Ruby On Rails 3_Unobtrusive Javascript - Fatal编程技术网

在rails中使用jquery重定向

在rails中使用jquery重定向,jquery,ruby-on-rails,ruby-on-rails-3,unobtrusive-javascript,Jquery,Ruby On Rails,Ruby On Rails 3,Unobtrusive Javascript,我相信这很简单,我只是还没有领会 我有一个大div,我想让用户点击它,它会将他点击的模型发送给它(就像这样,但点击问题div上的任何地方都会重定向到问题) 然后在js中做什么 window.location = this.getAttribute("data-questionurl"); 我希望此解决方案是良好的编码实践。erb文件在呈现到页面时只处理一次 所有的路径帮助程序都是可用的,所以只有一次,您不能从客户端调用rails帮助程序(或任何其他rails代码),除非您进行了单独的ajax调

我相信这很简单,我只是还没有领会

我有一个大div,我想让用户点击它,它会将他点击的模型发送给它(就像这样,但点击问题div上的任何地方都会重定向到问题)

然后在js中做什么

window.location = this.getAttribute("data-questionurl");

我希望此解决方案是良好的编码实践

。erb文件在呈现到页面时只处理一次

所有的路径帮助程序都是可用的,所以只有一次,您不能从客户端调用rails帮助程序(或任何其他rails代码),除非您进行了单独的ajax调用

因此,在这种情况下,您的选择是:

  • 将路径存储在
    #question
    div本身的一些
    attr
    中,并在js函数中获取它
  • 将路径存储在js数组/散列中,对其进行维护并适当使用
  • 修改您的路径,使问题路径成为
    collection
    而不是
    member
    上的
    /question?id=5
    而不是
    question/5/
    ,在这种情况下,您可以在js函数中添加查询参数
    id
    ,而
    questions\u路径将返回您
    /question

谢谢,我已经根据我们的建议编辑了问题和实施的解决方案
$(function() {
    $([id^="question-"]).bind("click", function() {
      window.location = <%= question_path(question) %>
    });
});
<div id="question-<%= question.id%>" data-questionurl= '<%= question_path(question) %>'>
window.location = this.getAttribute("data-questionurl");