在我的应用程序中,用户单击三个选项之一。当用户点击该选项时,我想获取该选项,然后使用弹出窗口显示有关它的更多信息。但是,我想使用控制器根据用户选择进行api调用,以便我可以获得有关他们选择的选择的更多数据。
如何在我的控制器中创建一个功能呢?
答案 0 :(得分:1)
如果你想渲染部分,我想你想通过AJAX调用控制器。我会通过在表示三个选项的链接中添加remote: true
并相应地在控制器中设置操作来解决此问题。
例如:
<%= link_to 'choice 1', choice_path, class:'choice-link', data: { choice: 1 }, remote: true %>
。
# controller
def choice_action
# some filter based on which choice (1, 2 or 3) the user chose
render partial: 'path/to/partial', layout: false if request.xhr?
end
layout
标志表示您只返回部分生成的HTML,而不是将其包装在渲染服务器生成的HTML模板时通常应用的应用程序布局中。
为了将HTML附加到DOM,我在选择链接上使用了一个监听器,例如:
$('.choice-link').on 'ajax:success', (data, status, xhr) ->
$('#popup').html(data)