提问人:johan 提问时间:2/25/2011 更新时间:2/26/2011 访问量:1744
如何使用 Rails 3.0.3 和 Ruby 1.9.2 将 javascript 放入控制器中
How to put javascript in the controller using Rails 3.0.3 and Ruby 1.9.2
问:
有人可以告诉我如何将javascript放入控制器中。我在会话控制器中尝试了这样的事情:
def sign_in if user.nil? @title = "Sign in" render :js => "alert('Invalid email/password combination.');" else sign_in user redirect_back_or user end end
当我尝试这样做时,页面以文本格式显示:alert('无效的电子邮件/密码组合。
我不想使用闪光消息。我真的很想使用 javascript 警报......请帮忙...
答:
3赞
Dan
2/26/2011
#1
对于 UJS 方式,请这样做:
在您的 controller.rb 中
def sign_in
if user.nil?
@title = "Sign in"
respond_to do |format|
format.js
end
end
else
sign_in user
redirect_back_or user
end
end
*在sign_in。js.erb*
alert('Invalid email/password combination.');
这将使你很好地分离教会和国家。controller.rb 中的所有 ruby 代码,view.js.erb 中的所有 javascript。
评论
0赞
johan
2/28/2011
非常感谢你。我头疼得很厉害,但你给了治疗......我对rails很陌生。
0赞
johan
2/28/2011
一个简短的问题...如果我的控制器名称是 sessions_controller.rb,操作是sign_in,那么我的 ujs 应该叫什么名字?是 sign_in.js.erb 还是 sessions.js.erb?我有点困惑,如果在每个动作中我都要创建一个新的js.erb。
0赞
rails_has_elegance
7/19/2012
应为 [操作] .js [控制器] 视图文件夹中的 .js.erb
评论