有人可以帮我解决一个小问题吗?实际上我想从控制器动作方法中调用一些javascript函数。我已经编写了一些代码但它没有工作。因为我对ROR全新,可能是我做错了somewhere。请检查下面的代码片段并修改它们以成功运行它们。
我的代码段如下。
视图/用户/ index.html.erb:
<center>
<h1>....Testing...</h1>
<p>
<a href="/users/browser"><button type="button">Check Browser</button></a>
</p>
<p>
<a href="/users/time"><button type="button">Check Time</button></a>
</p>
</center>
控制器/ users_controller.rb:
class UsersController < ApplicationController
def index
end
def browser
respond_to do |format|
format.js{render :js => "my_browser();"}
end
end
def time
respond_to do |format|
format.js{render :js => "my_time();"}
end
end
end
的application.js:
function my_browser(){
console.log('my browser function');
var objOffsetVersion;
if (objOffsetVersion=navigator.userAgent("chrome") != -1) {
objOffsetVersion="chrome"
};
alert(objOffsetVersion) ;
}
function my_time(){
var d = new Date();
var currtime = d.getHours() * 100 + d.getMinutes();
alert(currtime);
}
的routes.rb
Jscript::Application.routes.draw do
root :to => "users#index"
get "users/browser" => "users#browser"
get "users/time" => "users#time"
end
请帮帮我..谢谢。
答案 0 :(得分:0)
尝试更改链接以使用js格式,因为您明确告诉控制器通过format.js块处理js:
<center>
<h1>....Testing...</h1>
<p>
<a href="/users/browser.js"><button type="button">Check Browser</button></a>
</p>
<p>
<a href="/users/time.js"><button type="button">Check Time</button></a>
</p>
</center>
作为替代方案,您可以告诉rails始终在控制器中为所有格式呈现js:
class UsersController < ApplicationController
def index
end
def browser
render :js => "my_browser();"
end
def time
render :js => "my_time();"
end
end
希望这能提供一些帮助。