小编Ten*_*ack的帖子

在rails中使用content_for包含内联javascript

我正在使用content_for和yeild将javascript文件注入我的布局底部,但我想知道包含内联javascript的最佳做法是什么.具体来说我想知道把脚本类型声明放在哪里:

<% content_for :javascript do %> 
  <script type="text/javascript"> ... </script>
<% end %>
Run Code Online (Sandbox Code Playgroud)

要么

<% content_for :javascript do %> ... <% end %>
  <script type="text/javascript">
    <%= yield :javascript %>
  </script>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我现在正在使用第一个选项,并想知道包含多个是否不好

...

一个视图中的声明.有时我会偏袒这一点.

javascript ruby-on-rails content-for

18
推荐指数
1
解决办法
3万
查看次数

如何在rails中保存http referer

我正在尝试保存用户在注册时来自的网站.现在我的ApplicationController中有一个before_filter:

before_filter :save_referer

  def save_referer
    unless is_logged_in?
      session['referer'] = request.env["HTTP_REFERER"] unless session['referer']
    end
  end
Run Code Online (Sandbox Code Playgroud)

然后,当创建用户时,它会检查此会话变量并将其设置为nil.有时这不起作用,我担心使用像这样的会话可能会发生一些意想不到的事情.有没有人有更好的方法?或者也许是一些输入?

编辑:这是我用来保存引用者的逻辑:

def create     
    @user = User.new(params[:user])  
    if @user.save_with(session[:referer])
    ....
end
Run Code Online (Sandbox Code Playgroud)

用户

def save_with(referer)
    self.referer = referer unless referer == "null"
    self.save   
end
Run Code Online (Sandbox Code Playgroud)

有什么理由不起作用吗?

http-referer session ruby-on-rails

16
推荐指数
1
解决办法
2万
查看次数

如何在Rails视图中将Ruby变量传递给JavaScript函数?

我想知道在rails视图中将变量传递给JavaScript函数的最佳实践是什么.现在我做的事情如下:

<% content_for :javascript do %> 
  <script type="text/javascript">
    Event.observe(window, 'load', function(){          
        js_function(<%= @ruby_array.to_json %>, <%= @ruby_var %>); )}
  </script>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

javascript ruby-on-rails prototypejs

11
推荐指数
2
解决办法
2万
查看次数

删除括号内的文本(括号中的括号)

我正在尝试删除括号内的文本(以及括号本身),但是在括号内有圆括号的情况下遇到问题.这是我正在使用的方法(在Ruby中):

sentence.gsub(/\(.*?\)/, "") 
Run Code Online (Sandbox Code Playgroud)

这工作正常,直到我有一句话,如:

"This is (a test (string))"
Run Code Online (Sandbox Code Playgroud)

然后上面的扼流圈.任何人都知道如何做到这一点?我完全难过了.

ruby regex string

6
推荐指数
2
解决办法
6232
查看次数

您如何在 Ruby 中(不使用 Rails)将以下时间从 UTC 转换为 EST?

我试图在纯 Ruby 中将 UTC 时间“2018-04-02T14:30:00Z”转换为 EST。我注意到以下差异。如果我使用 Rails 解析 UTC 时间,然后添加 EST zone_offset,我得到的时间与使用“in_time_zone”助手的时间不同。9:30 与 10:30。

2.2.4 :001 > t = Time.parse "2018-04-02T14:30:00Z"
 => 2018-04-02 14:30:00 UTC 
2.2.4 :002 > t + Time.zone_offset("EST")
 => 2018-04-02 09:30:00 UTC 
2.2.4 :003 > t.in_time_zone('Eastern Time (US & Canada)')
 => Mon, 02 Apr 2018 10:30:00 EDT -04:00 
Run Code Online (Sandbox Code Playgroud)

ruby time ruby-on-rails

5
推荐指数
1
解决办法
1600
查看次数

将带有撇号的字符串传递给javascript函数

我有一种情况,我需要将带有撇号的字符串传递给javascript函数.然后,此函数接受字符串并使用它在DOM中按id查找元素.举个例子,我需要打电话:

showElement('what's')

function showElement(element_id){
     document.getElementById(element_id).style.display = "block";
}
Run Code Online (Sandbox Code Playgroud)

我尝试像showElement('what's')一样逃避撇号,但这似乎没有用.这有可能吗?

javascript escaping

3
推荐指数
1
解决办法
2万
查看次数

测试自定义rails模型方法

我有许多模型将单词存储为字符串,每个单词用空格分隔.我已经定义了模型方法来删除和添加单词到字符串,每次相应地更新单词的大小或数量.某处出现错误,因为尺寸有时会变成负数.我想知道,在rails中测试这种情况的最佳方法是什么.理想情况下,我想编写一个测试,允许我添加一些单词并删除它们,同时每次验证大小的正确值.谢谢.

testing ruby-on-rails

3
推荐指数
1
解决办法
2055
查看次数

从URL中添加图像作为Rails 3中的附件

我知道你可以在Rails 3中添加一个图像作为电子邮件的附件

def email_image(email)
  attachments["img"] = File.read('/path to image')
  mail(:to => email)
end
Run Code Online (Sandbox Code Playgroud)

但有没有办法从网址附加图像而不是本地保存的图像?我想附上一个用回形针保存在S3上的图像.有没有一种简单的方法可以做到这一点,还是我需要先下载图像?

email ruby-on-rails actionmailer ruby-on-rails-3

3
推荐指数
1
解决办法
1826
查看次数

编辑Nokogiri元素中的文本或使用正则表达式

有没有办法编辑nokogiri元素的文本?我有一个包含list元素(<li>)的nokogiri元素,我想在保留<li>html的同时从文本中删除一些字符.具体来说,我想删除文本中的前导":"字符(如果存在).它看起来不像nokogiri元素的text =方法,但我只是想确定.

也许我将不得不使用正则表达式?如果是这样,如果它看起来如下,我将如何删除前导":":

<li>: blah blah blah</li>
Run Code Online (Sandbox Code Playgroud)

ps我正在使用红宝石.

ruby regex nokogiri

2
推荐指数
1
解决办法
2366
查看次数

使用具有相同控制器的STI路径

我正在使用STI,我想知道,我是否必须为每个型号配备一个单独的控制器?我有一种情况,我只在STI关系中使用一个模型的创建和编辑操作,但如果我尝试为其执行表单,则会出现"未定义的方法"错误.更具体地说,我有两个继承自List的模型:

class RegularList < List
class OtherList < List
Run Code Online (Sandbox Code Playgroud)

我有一个处理这些操作的列表控制器,但我只使用表单创建带有RegularList的新模型.即我使用form_for创建新的List对象的唯一情况是使用RegularList.我想做的是:

class ListsController < ApplicationController

def new
  @list = RegularList.new
end
Run Code Online (Sandbox Code Playgroud)

否则创建新列表的路径看起来像regular_list/new,但我希望它只是list/new.思考?

编辑:问题是当我使用上面的代码时,我得到一个'未定义的方法'错误.我的观点如下:

...

所以在Lists控制器中使用RegularList对象似乎存在一些问题,这是我试图解决的主要问题.对不起,我意识到这不是最清楚的解释.

ruby-on-rails single-table-inheritance

2
推荐指数
1
解决办法
1063
查看次数

查找一个句子是否包含Ruby中的特定短语

现在我看到一个句子是否包含一个特定的单词,通过将句子分成一个数组然后做一个包含来查看它是否包含单词.就像是:

"This is my awesome sentence.".split(" ").include?('awesome')
Run Code Online (Sandbox Code Playgroud)

但我想知道用短语做这个的最快方法是什么.就好像我想查看句子"这是我真棒的句子".包含短语"我很棒的句子".我正在抓句子并比较大量的短语,所以速度有点重要.

ruby regex string

2
推荐指数
1
解决办法
2704
查看次数

将标题添加到rails路由

我有List对象,如下所示:

www.mysite.com/lists/123

其中123是列表的id.我想要做的是添加列表标题的网址,以便它提供更多信息(谷歌或其他).所以我希望它看起来像:

www.mysite.com/lists/123/title-of-list-number-123

你如何添加这样的网址?如果您只输入:www.mysite.com/lists/123没有标题,是否应该找到标题然后重定向到新路线?

routing ruby-on-rails url-rewriting

1
推荐指数
1
解决办法
1168
查看次数

删除ruby字符串中逗号之前的空格

嘿,我使用reg表达式从ruby字符串中删除括号和它们之间的内容.问题是这有时在逗号之前留下空格.我不知道如何去除这个空间.我一直在玩以下但它没有工作:

 @char_count = 0
 sentance.each_char{|char| 
   if char == ","
     if sentance[@char_count-1] == 32
       sentance[@char_count-1] = "" 
     end
   end
   @char_count += 1
 }
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!

编辑:sentance.gsub!(/,/,',')运行良好,但现在我意识到有些地方在逗号之前有多个空格.我也需要考虑这个场景.

ruby string

0
推荐指数
1
解决办法
3196
查看次数