我對遙控器感到困惑:在Rails窗體中是這樣的,我認爲需要一些JavaScript來使其成爲異步的,但這似乎只是打破了我的頁面。Rails和AJAX remote:true還需要什麼?
這是一個非常簡單的index.html.haml包括部分顯示所有的約會:
%h1 Calander
%h2 AppointmentsController
%h3 Make a new appointment
= form_for @appointment, remote: true do |f|
= f.text_field :title
= f.text_field :appt_time
= f.submit 'Make appointment'
#appointments
=render 'appointments'
這就是前面提到的部分:
[email protected] do |a|
%h3= a.title
%p= a.appt_time
索引和創建控制器方法:
def index
@appointments = Appointment.order('appt_time ASC')
@appointment = Appointment.new
end
def create
@appointmet = Appointment.create(appointment_params)
redirect_to :root
end
現在,這工作正常。我可以添加一個新的約會,點擊提交,新的約會顯示,而不刷新頁面,我想因爲我已經包括remote: true
。那麼我需要添加其他什麼來處理請求?我是否違反了最佳做法,不包括處理此請求的內容並完全依賴於遠程:是真的?
謝謝!在<%= j render「appointements」%>'中的「j」是什麼? – tfantina
由於ERB是文件嵌入,所有Ruby代碼都被轉換爲文件內容。我們希望文件內容是一個JS字符串「
」。這將告訴ERB不要把它寫成文件內容,而應該寫成JS代碼:)如果我們沒有,並且HTML部分內容有一個''/ n「'換行符,那麼這將成爲文件中的換行符,而不是一個包含'「/ n」'的JS字符串。 – fbelanger