Ruby on rails 将功能附加到rails 3中的按钮

Ruby on rails 将功能附加到rails 3中的按钮,ruby-on-rails,button,Ruby On Rails,Button,我的网页上显示了一组按钮。单击其中一个按钮的效果需要是调用外部API(可能接收到响应,并更新页面上的某些内容) 一些附加信息:这些按钮由部分用户放置在页面上,并构成用户列表的一部分。按钮用于激活和停用列出的用户。我不确定这种设置是否会影响我想做的事情的最佳方法,所以我认为值得一提 如何做到这一点?这些按钮应该是指向rails应用程序中某个控制器的链接吗?这难道不需要在按下按钮时重新加载页面吗?我可以将该请求转移到ajax吗 我不知道实现这一点的最佳方法,任何指导都将被证明是无价的。您可以使用Ra

我的网页上显示了一组按钮。单击其中一个按钮的效果需要是调用外部API(可能接收到响应,并更新页面上的某些内容)

一些附加信息:这些按钮由部分用户放置在页面上,并构成用户列表的一部分。按钮用于激活和停用列出的用户。我不确定这种设置是否会影响我想做的事情的最佳方法,所以我认为值得一提

如何做到这一点?这些按钮应该是指向rails应用程序中某个控制器的链接吗?这难道不需要在按下按钮时重新加载页面吗?我可以将该请求转移到ajax吗


我不知道实现这一点的最佳方法,任何指导都将被证明是无价的。

您可以使用Rails完成这项任务,但必须完成页面刷新。如果您使用Javascript/AJAX,则页面不应刷新。示例(jQuery):

编辑: 上面是jQuery代码。当你们点击按钮时,你们想做的是一些动作。如果您想调用外部API,那么可以使用ajax。在jQuery:and中查找POST和GET的文档。
谷歌搜索rails jquery教程。

好的。我相信我已经找到了一个很好的实现方法

诀窍是创建一个封装按钮的表单,以便在单击按钮时点击适当的控制器。在我的例子中,我使用rails
form_tag
函数在我的开发者控制器的
\u list\u item.html.erb
部分视图中生成我的按钮,如下所示:

<div id=<%= list_item.id %>>
    <%= form_tag "/Developer/toggle", :method => "get", :remote => true do %>
    <p>
        <% if list_item.inactive? %>
        <%= submit_tag "Activate", :name => nil %>
        <input type="hidden" name="act" value="activate" />
        <% else %>
        <%= submit_tag "Deactivate", :name => nil %>
        <input type="hidden" name="act" value="deactivate" />
        <% end %>
    </p>
    <input type="hidden" name="dev_id" value=<%=list_item.id%> />
    <% end %>
</div>
document.getElementById("<%=escape_javascript(@dev.id)%>").innerHTML="<%=escape_javascript(render :partial => 'developer/list_item', :object => @dev) %>";
结果是在开发人员活动状态更改后重新呈现部分,从而出现相应的
Activate
Deactivate
按钮


我意识到这个答案高度集中在我的特定应用程序上,特别是需要处理活动与非活动的切换,但是我相信它很容易简化并适应可能需要较少复杂性的其他情况。

感谢您的回复。它帮助我意识到我的思维方向是正确的。你能详细说明一下吗?如何更具体地做到这一点?
//此处的代码
块能否包含ruby代码?这方面有什么有用的教程吗?
document.getElementById("<%=escape_javascript(@dev.id)%>").innerHTML="<%=escape_javascript(render :partial => 'developer/list_item', :object => @dev) %>";