红宝石在罗德使用Ajax调用(Ruby on Rhodes using ajax call)

2019-11-01 08:31发布

我想在Ruby中建立动态下拉上rhodes.There基本上都是我的屏幕上的两个下拉列表,我使用AJAX根据第一dropdown..I上午选择的值从数据库中获取第二个下拉值新手红宝石,不知道如何在红宝石罗得岛使用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调用发送到controller..My问题的任何参数是如何从控制器发回的数据功能在Ajax调用,这样我可以利用这些信息来创建动态dropdown..I想送这个了mystring起作用(数据)??

Answer 1:

在罗得岛,控制器动作只能使其他操作或返回由泛音的字符串。 因此,为了填充使用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

'dropdown.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);
    }
});

确保您更换div标签在Ajax响应,因为罗德自动包围使用div标签AJAX响应。



文章来源: Ruby on Rhodes using ajax call
标签: ruby rhodes