【发布时间】:2026-02-17 06:35:01
【问题描述】:
我有以下内容:
<%= text_field_tag 'group_name','',:placeholder => "#{t "placeholder_group_name"}", :class => "group_name" %>
我想通过 ajax 向操作 group_name_exists 发送一个值为 'group_name' 的请求,然后呈现成功 => false 并将类 'group_name' 更改为红色。
ajax:
<script>
$( function() {
$( ".group_name" ).on("onchange",function(e) {
$.ajax({
url: '<%= group_name_exists_groups_path %>',
data: {group_name: $(this).val},
success: function(response) {
if (response.key)
alert(response.key);
}
});
});
});
</script>
def group_name_exists
blabla
respond_to do |format|
format.html
logger.info "jjj #{group.as_json()}"
format.json { render :json => { :success => false} }
end
但是他告诉我以下错误:
An ActionView::MissingTemplate occurred in groups#group_name_exists:
Parameters: {"group_name"=>"undefined", "action"=>"group_name_exists", "controller"=>"groups", "locale"=>"en"}
我似乎通过输入$(this).val 错误地访问了text_field_tag 中的文本。我可以使用“group_name”类访问 text_field_tag 中的文本吗?
编辑:(respond_to)
<div id="content">
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script>
$( function() {
$( ".group_name" ).on("onchange",function(e) {
$.ajax({
url: '<%= group_name_exists_groups_path %>',
data: {group_name: $(this).val()},
success: function(){
alert('success');
},
error: function(){
alert('failure');
}
});
});
});
</script>
<%= text_field_tag 'group_name','',:placeholder => "#{t "placeholder_group_name"}", :class => "group_name" %>
</div>
def group_name_exists
logger.info "giveHint #{params}"
group_name = params[:group_name]
group = Group.find_by_sql("SELECT DISTINCT gk1 FROM groups WHERE gk1 = '#{group_name}';")
if group.empty?
succ = false
else
succ = true
end
respond_to do |format|
format.js { render :json => {:success => succ}}
end
end
但我总是遇到失败,这意味着我遇到了错误。虽然我发送成功 => true
【问题讨论】:
-
Rails 试图显示一个不存在的模板?您可以检查您的控制器操作是否响应 json。
-
我知道但我不明白他为什么抱怨它,我正在渲染一个json,所以它应该是好的,不是吗?
标签: jquery ruby-on-rails ajax