【问题标题】:How to put javascript in the controller using Rails 3.0.3 and Ruby 1.9.2如何使用 Rails 3.0.3 和 Ruby 1.9.2 将 javascript 放入控制器中
【发布时间】:2011-07-04 02:38:03
【问题描述】:

有人可以告诉我如何将 javascript 放入控制器中。我在会话控制器中尝试过这样的事情:

定义登录 如果user.nil? @title = "登录" render :js => "alert('无效的电子邮件/密码组合。');" 别的 登录用户 redirect_back_or 用户 结尾 结尾

当我尝试这样做时,页面以文本格式显示:alert('无效的电子邮件/密码组合。');

我不想使用 Flash 消息。我真的很想使用javascript警报...请帮助...

【问题讨论】:

标签: ruby ruby-on-rails-3 unobtrusive-javascript


【解决方案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

*in sign_in.js.erb*

alert('Invalid email/password combination.');

这会给你一个很好的政教分离。 controller.rb 中的所有 ruby​​ 代码,view.js.erb 中的所有 javascript。

【讨论】:

  • 非常感谢你。我头疼得厉害,但你给了我解药...我对 Rails 很陌生。
  • 一个快速的问题...如果我的控制器名称是 sessions_controller.rb 并且操作是 sign_in,那么我的 ujs 的名称应该是什么?是 sign_in.js.erb 还是 session.js.erb?如果在每一个动作中我都会创建一个新的 js.erb,我有点困惑。
  • 应该是[controller]视图文件夹中的[action].js.erb
猜你喜欢
  • 1970-01-01
  • 2011-06-22
  • 2015-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多