小编Bar*_*aun的帖子

如何使用本机扩展重新包装红宝石宝石

我需要在没有安装任何开发工具的生产服务器上安装许多ruby gem(都带有C扩展名)。我想先在开发服务器上构建gems,然后重新打包并在生产服务器上安装生成的本机gem。

但是,似乎没有标准的方法可以将带有本地扩展的 gem打包进行重新分发。我知道rake-compiler,但没有任何相关的宝石可以直接使用。具体来说,我正在使用json-1.7.5,rb-inotify-0.8.8和ffi-1.2.1 gem。

任何有关如何执行此任务的指示或有关该主题的文档,将受到赞赏。

ruby gem package

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

如何在Rails中的页面内执行操作而不呈现新页面

在我的rails应用程序中,我正在尝试添加一个联系人用户弹出框,向用户发送电子邮件消息.

我有javascript来显示弹出窗体,这本身就是一个部分.

当用户单击联系表单上的提交时,它会调用一个传递邮件的控制器操作.提交消息后,我想保持在同一页面上,但隐藏弹出框.我的问题是,我无法获得传递邮件的控制器操作,而不是呈现自己的视图.我试过了

render nothing: true
Run Code Online (Sandbox Code Playgroud)

但这只是呈现一个空白页面.

我的表格设置如下

= form_tag({:controller => 'users', :action => 'contact_user'}, :method => 'put') do 
Run Code Online (Sandbox Code Playgroud)

在我的路线配置我有

resources :users
  collection do
     put 'contact_user'
  end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

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

数据结构:迭代两个数组,转换为集合并在ruby中执行交叉操作

让我们说我有a1a2:

a1 = [1,2,3]
a2 = [4,2,5]
Run Code Online (Sandbox Code Playgroud)

要查看是否a1共享任何元素a2,我可以遍历每个元素并比较每个元素:

def intersect?(x,y)
  a1.each do |x|
    a2.each do |y|
      if x == y return true
    end
  end
  false
end
Run Code Online (Sandbox Code Playgroud)

但更简单,(a1.to_set & a2.to_set).present?给我同样的答案.

我假设设置操作更快更有效?如果这是真的,考虑到.to_set每个阵列上的操作开销(如果有的话),它仍然是真的吗?

TIA

ruby arrays set

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

标签 统计

ruby ×2

arrays ×1

gem ×1

package ×1

ruby-on-rails ×1

set ×1