【发布时间】:2016-01-19 10:41:32
【问题描述】:
我是 javascript 和 ruby 的新手,想知道我是否以正确的方式进行此操作,以及如何获得我想要的结果。 我有一个名为 events\new.html.erb 的视图,它允许用户在集合中选择另一个用户 select:
<%= f.collection_select :id,
Customer.where(business_id: current_customer.business_id),
:id,
:full_name,
{ prompt: 'Select' },
{ id: "colleageselect", onChange: "renderColCal(this)" } %>
<div id = colleaguecal> </div>
这会触发 application.js 中的 javascript 函数“renderColCal”,我将向 ruby 发送变量 colleagueID:
function renderColCal(select){
var colleagueID = select.value ;
document.getElementById("colleaguecal").innerHTML = "Your colleague's calendar";
$.ajax({
url: 'calendars_controller/calendarChange',
data: (
'colleagueID=' + $('select').val()
)
}
)
}
这是我的路线:
post 'calendars_controller/calendarChange', to: 'calendars_controller#calendarChange'
然后在控制器“calendars_controller”(不是事件\新视图的事件控制器)中,我尝试使用 colleagueID:
def calendarChange
colleagueID = params[:colleagueID]
colleague = Customer.where(id: :colleagueID )
@colcalendar = colleague.calendar
@events = @colcalendar.events
respond_to do |format|
format.js {render '/calendars/_showColleague'}
end
end
我想要做的是能够使用 Ruby 的 @events 变量在 events\new html 中呈现部分 _showColleague。因此,每次用户在集合选择上选择一个名称时,它都会呈现所选同事的日历视图。目前,我使用此代码没有得到任何响应。请问我该怎么做?我很新,所以会很感激解释!谢谢
【问题讨论】:
标签: javascript jquery ruby-on-rails ruby ajax