在Ruby中,您可以使用Array#join将多个字符串简单地连接在一起,并使用可选的分隔符.
[ "a", "b", "c" ].join #=> "abc"
[ "a", "b", "c" ].join("-") #=> "a-b-c"
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一个很好的语法糖与一堆布尔表达式做类似的事情.例如,我需要&&一堆表达式.但是,将使用哪些表达式由用户输入确定.所以不要做一堆
cumulative_value &&= expression[:a] if user[:input][:a]
Run Code Online (Sandbox Code Playgroud)
我想先根据输入收集所有表达式,然后将&&它们一起全部收集起来.就像是:
be1 = x > y
be2 = Proc.new {|string, regex| string =~ regex}
be3 = z < 5 && my_object.is_valid?
[be1,be2.call("abc",/*bc/),be3].eval_join(&&)
Run Code Online (Sandbox Code Playgroud)
默认情况下Ruby中是否有这样的设备?如果可能的话,我只想要一些合成糖来使代码更清洁.
有没有办法做到这一点?如果repo只是具有.git/config类似的git-flow指令,那么它是否被认为是初始化的
....
[gitflow "branch"]
master = master
develop = develop
[gitflow "prefix"]
feature = feature/
release = release/
hotfix = hotfix/
support = support/
versiontag = v
Run Code Online (Sandbox Code Playgroud)
?
我正在尝试在我们的一个本地服务器上设置gem存储库.以下是我正在运行的步骤,我已经从几个指南中了解到了这些步骤.
1)我创建BASEDIR文件夹/ var/www/html/gems
2)sudo cp -r /usr/lib/ruby/gems/1.8/gems/someGem/var/www/html/gems
3)sudo gem generate_index -d在/ var/www/html等/宝石
但是,当我运行它时,我得到以下输出:
Loading 0 gems from /var/www/html/gems
Loaded all gems
Generating quick index gemspecs for 0 gems
Complete
Generating specs index
Generating latest specs index
Generating quick index
Generating latest index
Generating Marshal master index
Generating YAML master index for 0 gems (this may take a while)
Complete
Compressing indicies
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它没有加载宝石.我确实看到一个指南,建议将BASEDIR作为/ var/www/html/rubygems /,然后在BASEDIR中进一步创建一个gems /目录,并将所需的gem复制到这个gems /目录.我也尝试了这个,但得到了相同的结果.
我们的服务器必须具有相同配置的不幸运气在此提到的 …
在部署我的RoR(2.3.8)应用程序后,我已经设置了Capistrano来发送电子邮件.我有一个config/cap_mailer.rb基本上看起来像的文件:
ActionMailer::Base.smtp_settings = {
:address => my,
:port => exchange,
:domain => server,
:authentication => settings,
:user_name => are,
:password => here
}
class CapMailer < ActionMailer::Base
def deploy_notification(cap_vars)
recipients cap_vars[:notify_emails]
from 'deploy@my.org'
subject "New app!"
body "Deployed application...blah blah blah"
end
end
Run Code Online (Sandbox Code Playgroud)
然后,在我的deploy.rb文件中,我有以下内容:
require 'config/cap_mailer.rb'
...
desc "Email recipients of deployment"
task :notify do
puts " * Sending notification email"
set :notify_emails, ["test1@my.org", "test2@my.org", etc.]
CapMailer.deliver_deploy_notification(self)
end
Run Code Online (Sandbox Code Playgroud)
现在这一切都运行良好和花花公子......直到我在:notify_emails数组中放置了超过7个电子邮件地址.最多7个工作正常,但当我把8个或更多(所有有效地址),电子邮件搞砸了一点(至少仍然是前7个).查看电子邮件标题,它显示它正在切断"To:"中的第8个(和第9个,第10个......)地址并将其放入邮件正文中.
HEADER:
thread-index:AcyaZxlga08L9p35QYKJ22aiGG2zeA ==
Content-Class:urn:content-classes:message
重要性:正常 …
我知道我可以使用以下内容来调用子任务列表,并让每个子任务都使用我项目的Rails环境:
task :main_task => [:sub_task1, :sub_task2] do
end
task :sub_task1 => :environment do
Model1.some_class_method
end
task :sub_task2 => :environment do
Model2.some_class_method
end
Run Code Online (Sandbox Code Playgroud)
我的问题是
:main_task传递,:environment所以我不必明确地把它放在每个子任务中?:main_task.基本上我需要从一个数据库(SQLServer)中读取数据并填充另一个数据库(MySQL - Rails项目的数据库),但我希望将"读取"任务与"填充"任务分开以获得良好的可读性.尽可能简单,我试图找出是否保证按照调度顺序处理事件.假设我有以下简单代码:
private function handler1(e:Event):void { .. processing ..}
private function handler2(e:Event):void { .. processing ..}
private function handler3(e:Event):void { .. processing ..}
<SomeComponent myEvent1="handler1(event)" myEvent2="handler2(event)" myEvent3="handler3(event)" ... />
Run Code Online (Sandbox Code Playgroud)
如果在我的应用程序中的某个地方(来自组件本身或实例化组件的其他地方),如果我按照1,2,3的顺序发送这些事件,如:
dispatchEvent(new Event('myEvent1'));
dispatchEvent(new Event('myEvent2'));
dispatchEvent(new Event('myEvent3'));
Run Code Online (Sandbox Code Playgroud)
这些处理程序是否保证以相同的顺序触发(即handler1,handler2,handler3)......?我搜索互联网(阅读:谷歌)的任何关于"adobe事件处理订单"或任何类似的东西只是指事件生命周期.我找不到这个特定的细微差别.任何帮助是极大的赞赏.
--Ian
我有一个Rails 2项目,通过连接表有很多关系.让我们把表A,B,和ABJ,其中ABJ具有性能a_id和b_id(连同不相干到这-问题id和{created,updated}_at).
不幸的是,这种关系从一开始就被错误地创建,应该只是一个多(A has_many B's,B belongs_to A).所以我创建了一个向上迁移,将B直接重新关联到A. 基本上,1)add_column a_id到B,2)为每个ABJ,把abj.a.id放到abj.b.a_id,3)drop_table:abj.这很好用.
我还在向下迁移中创建了"逆"操作,如果我需要为每个B创建(1)create_table abj,2),则创建一个新的abj,使得abj.a_id = b.a_id和abj.b_id = b .id,3)从B)中删除_column a_id.这也很好.
随着"重新关联"这种关系与一个多的关系,期望不再使用的连接资源ABJ将消失,即删除模型,控制器,测试等.问题是,如果我这样做需要返回,运行向下迁移将无法工作,因为在步骤2(对于每个B,创建一个新的abj),class ABJ < ActiveRecord::Base自从我删除模型后就不再有了.
那么,为了操纵数据库中的数据,有没有办法在迁移中制作"临时"模型?或者您是否只是要求运行迁移的人在运行之前确定该模型是否存在?因为如果在步骤2中向下迁移失败,则步骤1已经创建了abj表,然后您必须手动删除它或在迁移中注释掉第1步代码,然后再次运行它(然后取消注释它) ).
想知道是否有任何好的解决方案.
抱歉,如果我在另一个线程中忽略了此问题,但无法找到它(在Internet上或实际上在任何地方)。
在Windows(XP)中,通过右键单击我的电脑,然后选择属性>高级>环境变量,可以设置以下全局环境变量:
CUSTOM_HOME = c:\some\folder\path
Run Code Online (Sandbox Code Playgroud)
如何将其插值到批处理文件中的执行中?我需要“追加” subfolder\program.exe到该路径,以便c:\some\folder\path\subfolder\program.exe进入批处理文件。我尝试类似的东西
%CUSTOM_HOME%\subfolder\program.exe
Run Code Online (Sandbox Code Playgroud)
但是当我执行批处理文件时,输出仅显示
> \subfolder\program.exe
> The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)
什么是正确的语法,因此.exe的完整路径将是正确的?
我正试图在Android中做一些简单的FTP东西.经过一番研究,我决定选择apache-commons-net.以下是我在Eclipse下使用它的步骤.
apache-commons-net,然后选择添加JAR ...通过选择出现的.jar文件下载.apache-commons-net> Finish.然后,库将显示Android 2.2在" 库"选项卡中.我开始编程,代码完成适用于类/方法/等.来自这个图书馆.包括导入语句等等.一切似乎都能正常工作.问题是,当我运行应用程序时,它强制关闭,Eclipse中的LogCat显示以下错误:
找不到类'org.apache.commons.net.ftp.FTPClient',从方法<...>引用
...
引起:java.lang.NoClassDefFoundError:org.apache.commons.net.ftp.FTPClient
看起来我已经正确设置了一切,为什么执行抱怨它找不到类?
非常感谢任何想法或帮助.
ruby ×3
actionmailer ×1
actionscript ×1
adobe ×1
android ×1
apache-flex ×1
batch-file ×1
capistrano ×1
eclipse ×1
events ×1
file ×1
gem ×1
git-flow ×1
installation ×1
java ×1
model ×1
rake ×1
repository ×1
rubygems ×1
syntax ×1
windows ×1