Ruby on Rhodes使用ajax调用



我正在尝试在rhodes上构建一个动态下拉列表。我的屏幕上基本上有两个下拉菜单,我使用ajax从数据库中获得第二个下拉菜单的值,这取决于在第一个下拉菜单中选择的值。我是ruby新手,不知道如何在ruby上使用ajax的语法。

JavaScript代码我使用…

$.post("/app/Settings/dropdown", 
 { value:a }, 
 function(data){ 
alert(data);

});

-----部分控制器代码

输入代码

def dropdown
 @a = @params['value']
  puts @a
 if @a.eql?"Auto"
   mystring="auto1|auto2|"
  else
   mystring="personal1|personal2|"
  end
end

我可以得到任何参数通过ajax调用发送到控制器..我的问题是如何发送回数据从控制器到函数在ajax调用,以便我可以使用该信息来创建一个动态下拉表..我想发送这个mystring函数(数据)?

在Rhodes中,控制器动作只能呈现其他动作或返回由部分组成的字符串。因此,为了使用AJAX填充下拉菜单,您必须呈现与将作为AJAX调用响应返回的操作相关联的视图。

控制器'下拉'动作:-

def dropdown
    @a = @params['value']
    if @a.eql?"Auto"
        @optionList[:auto1]="auto1"
        @optionList[:auto2]="auto2"
    else
        @optionList[:personal1]="personal1"
        @optionList[:personal2]="personal2"
    end
    render :action => "dropdown"
end

下拉。erb的观点:-

<% optionList.each do |key, value| %>
    <option value="<%= key %>"><%= value %></option>
<% end %>
AJAX调用

: -

$.post(
    "/app/Settings/dropdown", 
    { value:a },
    function(data){
        data = data.replace("<div>","");
        data = data.replace("</div>","");
        alert(data);
    }
});

确保在AJAX响应中替换了div标签,因为Rhodes会自动用div标签包围AJAX响应。

相关内容

  • 没有找到相关文章