Javascript 将ruby代码与js.coffee脚本混合使用

Javascript 将ruby代码与js.coffee脚本混合使用,javascript,jquery,ruby-on-rails,ajax,coffeescript,Javascript,Jquery,Ruby On Rails,Ajax,Coffeescript,在我的视图中有ajax链接,我想在它们被发送到实际操作之前检查它们的密码,因为我使用Desive controller,所以我只能使用特定的密码检查。 下面是我希望用于验证的咖啡脚本 。“一些行动”:信息=> n、 id},类:“css_类”,:remote=>true%> 我正在使用上面的链接 我正在寻找以下类型的代码 $("a.css_class").live "click", -> password_variable = prompt("Enter password",

在我的视图中有ajax链接,我想在它们被发送到实际操作之前检查它们的密码,因为我使用Desive controller,所以我只能使用特定的密码检查。 下面是我希望用于验证的咖啡脚本

。“一些行动”:信息=> n、 id},类:“css_类”,:remote=>true%>

我正在使用上面的链接

我正在寻找以下类型的代码

$("a.css_class").live "click", ->
      password_variable = prompt("Enter password", "password")
      if |ruby-code|current_user.valid_password?(password_variable)|ruby-code|
        true
      else
        alert "You entered wrong password"
        false

ruby代码如何与coffee脚本混合使用。

如果它是一个用于静态资产的代码,那么很明显,您将无法在其中添加一些服务器端动态。它将被转换成一个简单的JavaScript代码片段,并放入应用程序的
public
文件夹中

如果你的观点叫做*.coffee,那么你已经做好了所有的准备。以这种方式命名的视图将通过ERb引擎自动预处理(通过
):

视图中/some/thing.coffee:

alert "Server's time is <%= Time.now %>"
警报“服务器的时间为”
我也有同样的疑问

背景:

我正在为我的公司写一个ERP。它使用西班牙语、英语和日语的信息

我用的是coffeescript,haml,scss,没有ERB

因此,在我的所有视图中,多语言消息都可以正常工作,但是,我添加了一个.js库,用一个带有下拉列表的漂亮组合框替换浏览器丑陋的dropbox,它使用一个散列来保存本地语言的消息

所以我所做的是:

\u form.html.haml

我在视图中执行此操作,以便可以访问I18n库。如果我尝试访问a.js.coffee中的I18n库,它就会失败

现在,在

mycode.js.coffee


我认为,最好先将其重定向到另一个操作,然后使用render:js=>“function();”怎么说?@NishutoshSharma我想做一些“取消”ajax操作。然后,您可以在提示符字段输入密码后通过ajax访问它。因此,您可以使用
link\u-to\u功能来代替远程
link\u-to
。它将请求密码并发出一些非GET请求以取消订单。在Rails 4中,我发现有必要将文件命名为
views/some/thing.coffee.erb
,以便处理嵌入的Ruby语句。这对于嵌入存储在
secrets.yml
中的Rails 4配置非常有用。
:coffeescript
  menssages_for_select2 [
    "#{I18n.t('select.formatNoMatches')}"
    "#{I18n.t('select.formatInputTooShort')}"
    "#{I18n.t('select.formatInputTooLong')}"
    "#{I18n.t('select.formatSelectionTooBig')}"
    "#{I18n.t('select.formatLoadMore')}"
    "#{I18n.t('select.formatSearching')}"
  ]
@mensajes_select2 = (txt) ->
  $.extend $.fn.select2.defaults,
    formatNoMatches: ->
      txt[0]
    formatInputTooShort: (input, min) ->
      txt[1]
    formatInputTooLong: (input, max) ->
      txt[2]
    formatSelectionTooBig: (limit) ->
      txt[3]
    formatLoadMore: (pageNumber) ->
      txt[4]
    formatSearching: ->
      txt[6]