在按钮上显示视图点击rhoMobile

时间:2011-12-22 12:03:04

标签: ruby rhomobile rhodes

我在rhomobile中创建了一个简单的项目。 我的主屏幕显示一个文本框和一个按钮。

这是index.erb

中的代码
<div data-role="content">
<br /><br />
 Email Address : <input type="text" name="Email" /><br />
  <form method="POST" action="<%= url_for(:action =>:show_VibLoc) %>">
  <input type="submit" value="Submit" />

</form>

现在我在app文件夹下的设置文件夹中创建了一个新文件VibLoc.erb

VibLoc.erb我只显示两个按钮。

在设置文件夹下的controller.rb文件中,我创建了一个函数show_VibLoc

在此函数中,它呈现VibLoc.erb文件

这是代码:

def show_VibLoc
render :action => :VibLoc
end

代码编译成功但当我点击该按钮时,我看不到我的VibLoc视图。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:3)

曾经遇到过同样的问题,我发现的方法是:

  1. 在项目的public / js文件夹中创建一个.js文件,其中包含一个从控制器调用方法的函数:

    function ajaxBridge(method,funcName,onSuccess)
    {
    $.ajax({
        type: method,
        url: funcName,
        async: true,
        error: function(xhr){alert("Custom Uncaught AjaxBridge Error 11 :" + "<br/>" + xhr.responseText);},
        success: onSuccess
        });
    }
    
  2. 在.erb文件或视图中,您可以:

    <input type="button" value="Login" onclick="doValidation()"/>
    
  3. 在同一页面上创建一个脚本来调用我们的ajax方法,我也向该方法发送登录信息:

    <script type="text/javascript">
    
      function doValidation(){
        var login = $('input#login').val();
        var password = $('input#password').val();
        ajaxBridge("POST","<%= url_for :controller => :Survey, :action => :do_login %>"+"?login="+login +"&password="+password,function(){});
      }
    </script>
    
  4. 注意:请包含       <script type="text/javascript" src="/public/js/AjaxConnector.js"></script>
    指定ajax的源。

    希望我帮忙。

答案 1 :(得分:0)

最后,我自己解决了这个问题。

而不是在index.erb

中编写此代码
<div data-role="content">
<br /><br />
Email Address : <input type="text" name="Email" /><br />
<form method="POST" action="<%= url_for(:action =>:show_VibLoc) %>">
<input type="submit" value="Submit" />

</form>

用这个替换它

<div data-role="content">
<br /><br />
<div data-role="fieldcontain">
  Email Address : <input type="text" name="Email" /><br />
  </div>
  <form method="POST" action="<%= url_for(:controller => :Settings, :action =>:show_VibLoc) %>">
  <input type="submit" value="Submit" />

</form>

感谢您查看此问题:)