是否可以在没有link_to的情况下渲染部分onclick?

我想知道是否可以在没有link_to的情况下渲染部分onclick?

我一直在寻找答案,但大多数答案blabla_path使用link_toblabla_pathremote: true但我不想通过控制器来处理它,而只是在视图方面。

就像是

< – (这显然不起作用,但这样的事情)

谢谢

顺便说一下,我正在使用Rails 4.0.1

====

更新

我已经使用ajax和jquery动态地尝试了它,但它很有效但很奇怪。 请看下面我的代码,我已经把链接放在一个循环中但是当点击“新评论”时,它出现在第一篇文章上,当我点击第二个/第三个/第四个上的“新评论”时所有的部分在第一篇文章中得到渲染。 到底是怎么回事? 当我点击第二篇文章中的“新评论”时,它应该出现在第二个post而不是第一个post上。

      

如果您确实想要在单击链接或按钮时动态获取视图,则必须通过控制器进行查看。 根据MVC规则。 但在你的情况下,你可以尝试像加载页面渲染部分并使其隐藏。 并点击按钮或链接只需通过jQuery或javascript 删除其隐藏的属性

简单

Sabyashachi Ghosh关于将元素隐藏在DOM中,因此您可以在点击时取消隐藏它们。 虽然效率很低,但它可以达到你想要的效果


动态

您必须使用Ajax和控制器操作来处理请求

从Rails动态加载内容的唯一方法是发送请求。 Rails就像一个巨大的API – 您必须将您的请求发送到一系列端点 (路由),然后Rails将使用控制器处理

您的问题是,如果您具有所需的路由以将请求发送到特定的控制器操作,您将只能动态加载某些内容,然后该操作将处理请求并允许Rails呈现结果

我这样做:

 #app/controllers/application_controller.rb Class ApplicationController < ActionController::Base layout Proc.new {|controller| controller.request.xhr? false : "application" } #-> sets layout to false for ajax requests end #view <%= link_to "Load Popup", action_path, remote: :true %> #javascript $("a[data-remote=true]").on("ajax:success", function(data) { //handle data });