在我的應用程序中,用戶點擊三個選項中的一個。當用戶點擊選擇時,我想抓住該選擇,然後使用彈出窗口顯示更多關於它的信息。但是,我想根據用戶的選擇使用控制器進行api調用,以便我可以獲得更多關於他們選擇的選項的數據。如何在Rails中使用控制器渲染部分?
如何在我的控制器中創建一個功能來做到這一點?
在我的應用程序中,用戶點擊三個選項中的一個。當用戶點擊選擇時,我想抓住該選擇,然後使用彈出窗口顯示更多關於它的信息。但是,我想根據用戶的選擇使用控制器進行api調用,以便我可以獲得更多關於他們選擇的選項的數據。如何在Rails中使用控制器渲染部分?
如何在我的控制器中創建一個功能來做到這一點?
如果你想渲染一個部分,我想你想通過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)
好的。我試過了,我得到了一個響應,但是ajaxsuccess不起作用。 –
@DavidMckee:請注意冒號 - >'ajax:success'。在觸發ajax調用的元素(或其父元素)上綁定處理程序也很重要。 – nicohvi
@rkon我可以創建彈出。我只是不知道如何操縱控制器功能中的數據。我不知道該在哪裏表示該部分是由某個控制器功能控制的。 –