解决了!!
好的,所以在挠了2天之后,我发现答案很简单。只是我一直不敢尝试 ajax,我从来没有真正关注过它。以防万一有人正在寻找相同的东西,这是对我有用的解决方案。
应用程序.js 文件
$(function($) {
$("#email_template_id").change(function() {
var selected_id = $("#email_template_id").val()
if (selected_id == '')
{
$('#email_template_email_subject').val('')
}
else {
$.ajax({
type: "GET",
url: "/default_email_templates/" + selected_id + ".json",
dataType: 'json',
success: function(data){
$('#email_template_email_subject').val(data.email_subject)
}
});
}
});
});
查看(在_form.html.erb
EmailTemplate 中,其中 DefaultEmailTemplate 是其值应出现在 selection 上的模型)
<%= form_for(@email_template) do |f| %>
<div class="field">
<%= f.label :default_email_template_id, "Template Type" %>
<%= f.collection_select(:id, DefaultEmailTemplate.all, :id, :email_type, {prompt: "Select one"}, {:data => {remote: true}}) %>
</div>
<div class="field">
<%= f.label :email_subject %>
<%= f.text_field :email_subject %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我们可以通过简单地一个接一个地传递参数来减少 ajax 代码,但是,我不太清楚这一点,并且真的尝试过。请发布有关代码的任何建议。谢谢。
PS:也许我看起来不正确,但是当我这样做时,这些对我帮助很大
如何执行 Ajax GET 请求以从 rails 获取数据并将其传递给 javascript(谷歌地图)?
在rails上的ajx中传递text_field值