代码之家  ›  专栏  ›  技术社区  ›  z3cko

用rails3链接到语法(link-to-remote)和基本javascript在rails3应用程序中不工作?

  •  3
  • z3cko  · 技术社区  · 16 年前

    我想知道在当前的rails3master中,语法的基本链接是完全中断了,还是我在这里做了一些错误的语法。

    = link_to "name", nil, :onlick => "alert('Hello world!');"
    

    对于一般的link-to语法,我找不到一个可以将link-to-remote与confirmation、remote和html类结合在一起的示例(参见下面的try)

    = link_to "delete", {:action => "destroy", :remote => true, :method => :delete, :confirm => "#{a.title} wirklich Löschen?" }, :class => "trash"
    

    即使rails3 api在这里也帮不了我: http://rails3api.s3.amazonaws.com/index.html

    救命啊!

    6 回复  |  直到 16 年前
        1
  •  13
  •   mckeed    14 年前

    我相信你的问题是,你已经设置了链接,以显示警告时,它被舔,而不是当它被点击。;)

    link_to_remote ,随着切换到不引人注目的javascript,它发生了变化。你可以在这里阅读: http://blog.solnic.eu/2009/09/08/unobtrusive-javascript-helpers-in-rails-3.html

        2
  •  8
  •   z3cko    14 年前

    如果遇到类似的问题,请参阅下面的文章以获取更多信息 http://blog.loopedstrange.com/modest-rubyist-archive/rails-3-ujs-and-csrf-meta-tags

     <%= csrf_meta_tag %>
    

    帮我修好了。

        3
  •  3
  •   netbe    13 年前

    nil不起作用:

    = link_to "name", nil, :onclick => "alert('Hello world!');"
    => <a href="/currentpath", onclick="alert('Hello world!');">name</a>
    

    = link_to "name", "#", :onclick => "alert('Hello world!');"
    => <a href="#", onclick="alert('Hello world!');">name</a>
    
        4
  •  1
  •   robeastham    16 年前

    如果这里的其他答案都不适用于你,那么也许这会有所帮助。

    所以csrf\u meta\u标记声明对我来说是不够的,但是无论如何应该添加到rails3的布局文件中。在我看来,这与jQuery有冲突。我只是说:

    <script type="text/javascript">
      jQuery.noConflict();
    </script>
    

    在我的布局中添加了rails脚本标签之后,Prototype和jQuery之间的冲突得到了解决。嘿,普雷斯托,我得到了关于删除的确认对话框。

    这项技术还解决了我最初使用link\尝试删除记录时遇到的问题。与链接_到任何销毁命令似乎重定向到显示页面的记录。因此,根据我看到的其他解决方案,我转到了button\ to,但没有得到确认。我想知道jQuery和Prototype是否有更深层次的问题。

    在旁注中,我确实遵循了以下说明:

    http://webtech.union.rpi.edu/blog/2010/02/21/jquery-and-rails-3/

        5
  •  1
  •   clemensp    15 年前

    以上答案的离题评论,因为我还不能评论:(

    我想我会留下一些评论,也许对你遇到的一些问题有所帮助。

    自从从ActiveRecord切换到Mongoid之后,我一直在讨论“销毁链接重新定向到show页而不是索引页”的问题,并且还没有找到一个真正的解决方案(已经删除了原型)。但是,一个有效的解决方法是使用:location to response\u显式指定重定向路径:

    respond_with @themodel, :location => themodels_url
    

    button_to "Button Name", { :controller => "your/controller", :action => :action_name, :confirm => "Text for the pop-up"}, { :method => :<method name> }
    

    例如

    button_to "Click Here", { :controller => "home", :action -> :set_completed, :confirm => "Mark the item complete?" }, { :method => :put }
    
        6
  •  0
  •   Nigel Sheridan-Smith    14 年前

    这对我有用:

    <%= link_to "Recommend", recommend_user_path(@user), :remote => true %>

    <%= csrf_meta_tags %>

    请注意,Rails v3.2.2使用的是“tags”而不是“tag”