[英]Populate form fields using a dropdown and AJAX with Rails
我有一個表單字段,用戶可以在其中輸入聯系人信息,包括姓名,電子郵件等。如果他們已經保存了聯系人,那么我想保存其聯系人的下拉列表。 從下拉列表中選擇聯系人后,應使用該數據填充聯系人字段,以方便編輯。
由於某種原因,此方法無法正常工作:
在我的new.html.erb視圖中:
<%= f.collection_select :id, @contacts, :id, :name, :onchange =>
remote_function(:url =>{:action => 'populate_contact_form'}, :with => 'id') %>
在我的控制器中:
def populate_contact_form
raise "I am working up to this point"
@contact = current_account.contacts.find(params[:id])
end
在populate_contact_form.rjs中:
page['contact_name'].value = @contact.name
page['contact_email'].value = @contact.email
似乎從未調用過我的控制器方法...誰能解釋如何做到這一點?
之所以沒有被調用是因為您使用的remote_function不正確。 如果從remote_function的:url選項中缺少任何這些選項,Rails會假定當前為action / controller / id / etc。 您將:action作為頂級選項傳遞給remote_function,它將被忽略。 使用:url選項,Rails假定呈現此視圖的動作和控制器相同。
這應該可以解決您的問題:
<%= f.collection_select :id, @contacts, :id, :name, :onchange =>
remote_function(:url =>{:action => 'populate_contact_form'}, :with => 'id') %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.