有没有人见过treetop的vim缩进文件,Ruby解析器/生成器?我发现了一个vim语法高亮显示文件,但没有看到缩进文件.
什么是最简单,最像Ruby的方式呢?
[1, 3, 10, 5].diff
Run Code Online (Sandbox Code Playgroud)
应该产生
[2, 7, -5]
Run Code Online (Sandbox Code Playgroud)
也就是说,一阶差分的数组.我想出了一个解决方案,我将在下面添加,但它需要ruby 1.9并不是那么光滑.还有什么可能吗?
我想打开一个Nokogiri的网页,并提取用户在浏览器中访问该页面时看到的所有单词并分析单词频率.
使用nokogiri从html文档中获取所有可读单词的最简单方法是什么?理想的代码片段将采用html页面(比如文件),并提供一系列单个单词,这些单词来自可读的所有类型的元素.
(无需担心javascript或css隐藏元素,从而隐藏单词;只需设计用于显示的所有单词即可.)
我是Rails的初学程序员,我正在尝试创建一个简单的表单,其中包含姓名,电子邮件和电话号码,然后当您单击提交时,使用Ajax更新页面.
即如果您在表单的文本字段中输入User,user @ example.com和555-555-555并单击提交,您应该得到
姓名:用户电子邮箱:user@example.com电话号码:555-555-555
我知道这是一个简单的问题,但我不太清楚如何编写JavaScript以使其工作.
这是我的部分代码:
<%= form_for(@user, :remote => true) do |f| %>
Name: <div="Name"><%= f.text_field :name %></div>
Email: <div="Email"><%= f.text_field :email %></div><br/>
Phone Number: <div="Phone Number"><%= f.text_field :phone_number%></div><br/>
<%= f.submit "Submit" %>
Run Code Online (Sandbox Code Playgroud)
我的控制器看起来像这样:
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(params[:user])
end
end
Run Code Online (Sandbox Code Playgroud)
在我的create.js.erb文件中,我是否使用.update函数将输入的信息替换为文本字段,还是我还要做其他事情?
我想在activerecord关系上定义一个自定义方法,例如:
Transaction.all.summed_values
Run Code Online (Sandbox Code Playgroud)
一个简单的例子是summed_values应该sum(:value)在哪里评估关系.
我应该在哪里定义方法summed_values?看起来应该是ActiveRecord::Relation.如果应该直接在那里,我应该把它放在哪个文件中?
另外,如果这个新方法只对Transactions 有意义,有没有办法告诉rails只为ActiveRecord::Relations组成的Transactions 定义这个方法?
我正在使用mechanize(使用clientform)在python中进行一些Web爬行,因为它不支持JS,我想在表单中设置一个不存在的输入值(输入由JS生成).我怎样才能做到这一点?
该错误类似于您尝试执行时获得的错误
from mechanize import Browser
br = Browser()
page = br.open('http://google.com')
br.select_form(nr = 0)
br['unexistent'] = 'hello'
Run Code Online (Sandbox Code Playgroud) 让我们说一个User有很多Documents,还有一个Document他们正在研究的单曲.我如何在rails中表示这一点?
我想说current_user.current_document = Document.first(在文档前面有或没有current_)并且不要更改current_user.documents集合.
这就是我所拥有的:
class Document < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :documents
has_one :document
end
Run Code Online (Sandbox Code Playgroud)
问题是,当我说current_user.document = some_document,它删除以前存储在文档current_user.document的current_user.documents.这是有道理的,因为这种has_one关系Document有,但不是我想要的.我如何解决它?
我想要一个在Ruby中保持本地状态的函数.每次我调用该函数时,我想返回一个结果,该结果既依赖于调用参数又依赖于函数的存储状态.这是一个简单的例子:
def inc_mult(factor)
@state ||= 0 # initialize the state the first time.
@state += 1 # adjust the internal state.
factor * @state
end
Run Code Online (Sandbox Code Playgroud)
请注意,状态是第一次初始化,但后续调用访问存储状态.这很好,除了@state泄漏到周围的环境中,我不想要.
什么是最优雅的重写方式,以便@state不泄漏?
(注意:我的实际例子要复杂得多,初始化状态很昂贵.)
local_variables在 Ruby 中,您可以使用和以编程方式轻松访问局部变量eval。我真的很想使用单个方法调用对这些变量进行元编程访问,例如
# define a variable in this scope, such as
x = 5
Foo.explore_locals # inside the Foo#explore_locals method, access x
Run Code Online (Sandbox Code Playgroud)
Foo一些外部模块在哪里。这个想法是以一种很好的方式显示和导出局部变量。
方法内部应该包含什么explore_locals?有没有办法让这成为可能?如果绝对有必要的话,我想可能是
Foo.explore_locals binding
Run Code Online (Sandbox Code Playgroud)
但这对于我想要的应用程序来说不太优雅。
我想知道是否有人试图在stdin上提供ruby程序内容.我不希望ruby回退到允许交互式输入.我该怎么做呢?
# When called in bash like this, I want 'cat.rb' to exit immediately:
ruby cat.rb
# When called in bash like this, I want to see the word 'hello':
echo hello | ruby cat.rb
Run Code Online (Sandbox Code Playgroud)
如果我只是cat.rb包含,puts gets则第一个示例将阻塞,等待交互式stdin上的EOF.我不想修改调用命令,但希望支持这两种行为.
ruby ×6
activerecord ×1
ajax ×1
clientform ×1
indentation ×1
mechanize ×1
nokogiri ×1
python ×1
treetop ×1
vim ×1