我在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
视图。
我在这里做错了什么?
答案 0 :(得分:3)
曾经遇到过同样的问题,我发现的方法是:
在项目的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
});
}
在.erb文件或视图中,您可以:
<input type="button" value="Login" onclick="doValidation()"/>
在同一页面上创建一个脚本来调用我们的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>
注意:请包含
<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>
感谢您查看此问题:)