草庐IT

save_stdout

全部标签

html - Rails 如何将参数从 Controller 传递到模型内部的 after_save

我有一个Rfqcontoller我正在创建新的或更新现有的Rfq,当我创建或更新对象被保存时,我想要的是因为我有很多引号参数我想用参数中的引号更新line_items表保存Rfq后在quote_price列中[:quotes]我知道这很令人困惑,但是谁是ror-ish应该知道我想问的一些提示。 最佳答案 如果您试图在您的模型中使用params散列,那么您就违反了MVC的原则。该模型应该独立于参数。如果您正在尝试执行以下操作:#controllerModel.foo#modeldeffooparams[:bar].reverse!en

ruby-on-rails - 懒注册 : How to let a guest user start their workflow and prompt registration when they try to save their work?

我想知道如何让guest在不注册的情况下使用我的Web应用程序,然后如果他们试图保存他们的工作,他们会收到注册提示。顺便说一句,这将在Rails应用程序中。我可以只允许公众访问部分工作流程,然后在他们保存时检查他们是否是注册用户(通过session值或cookie?)。如果他们不是注册用户,请将他们的所有工作保存到session中并让他们填写注销表单。成功注册后自动登录并在数据库上启动创建? 最佳答案 您需要跟踪session中的数据。有些人建议制作一个模块或库来处理session内的数据。例如,您可能有一个SessionCart类

ruby-on-rails - Rails has_many :through saving additional fields

我正在尝试找到一种优雅的方式来保存约会模型(如下)中称为描述的附加字段。我的模型是这样设置的:classPhysician在我看来,我有复选框设置来保存连接表的数据,但我想滑入一个额外的“描述”字段以与连接一起保存。以下是我的看法:Patients 最佳答案 您可以使用accepts_nested_attributes_for来更新关联属性。在模型中:accepts_nested_attributes_for:appointments,:allow_destroy=>true在View中:引用http://api.rubyonrai

ruby-on-rails - 在 Rails 应用程序中重新定义 $stdout 和 $stderr 的副作用

我想暂时将$stdout和$stderr重定向到将由script/runner运行的脚本中的文件在Rails应用程序中。这样做有任何潜在的副作用吗?在我的脚本运行期间,更改全局变量是否会导致输出流在Rails应用程序的其他部分重定向?脚本使用的其他库或线程呢? 最佳答案 标准输出和标准错误流通常可以通过两种方式访问​​:$stdout和STDOUT$stderr和STDERR足够聪明的人也可以使用IO.new打开他们自己的副本使用文件描述符参数:sneaky=IO.new(2,'w')现在您可以通过sneaky对标准错误流进行写入访

ruby - 为什么 IO::WaitReadable 对于 STDOUT 的引发方式与 STDERR 的引发方式不同?

考虑到我想测试一个长命令的非阻塞读取,我创建了以下脚本,将其保存为long,并使用chmod755使其可执行,并将其放在我的路径中(另存为~/bin/long,其中~/bin在我的路径中)。我在使用RVM默认值编译的ruby1.9.2p290(2011-07-09修订版32553)[x86_64-darwin11.0.0]的*nix变体。我不使用Windows,因此不确定测试脚本是否适合您。#!/usr/bin/envruby3.timesdoSTDOUT.puts'messageonstdout'STDERR.puts'messageonstderr'sleep1end为什么long

ruby - 摆脱 ruby​​ stdin/stdout 缓冲

我正在尝试编写一个ruby​​脚本来过滤尾部文件的输出(tail-flog.log|./my_filter.rb)。我相信我已经将stdin和stdout设置为同步读取,但我仍然看到我的输出以延迟批处理的形式出现,一次20行左右,而不是实时的。我可以用如下简单的代码重现问题:#!/usr/bin/ruby$stdout.sync=true$stdin.sync=trueARGF.eachdo|line|putslineend我是否缺少消除缓冲的设置或类似的东西?编辑:澄清一下,如果我只是tail-f日志,那么我会看到每秒写入很多行。 最佳答案

ruby - 从 STDOUT 流式传输数据

所以我有以下代码:阅读器.rbrequire'open4'defstreamer(stdout)beginloopdodata=stdout.read_nonblock(8)printdataendrescueErrno::EAGAINretryrescueEOFErrorputs'Endoffile'endendpid,stdin,stdout,stderr=Open4::popen4"rubythreader.rb"stdout.fcntl(Fcntl::F_SETFL,Fcntl::O_NONBLOCK)streamer(stdout)线程.rb10.timesdo$stdout

Ruby IO.popen STDOUT 缓冲

我正在编写一个脚本,该脚本使用IO.popen打开另一个程序并持续读取数据。是这样的:process=IO.popen(["/the/program","argument","argument"])loopdoline=process.getsputs"#{line}"end(实际的程序不仅仅是打印输出,显然-这只是一个例子。)我遇到的问题是popen似乎在缓冲来自已打开进程的STDOUT。我已经通过直接从shell并通过popen并排运行程序来确认这一点,而Ruby永远不会一次获得一行。它总是一次获取多行,并且有延迟。我试过了STDOUT.sync=true...在popen之前,但

C++:重定向 STDOUT

在我的应用程序中,我想将通常会转到标准输出流的输出重定向到我定义的函数。我读到您可以将stdio重定向到文件,那么为什么不重定向到函数呢?例如:voidMyHandler(constchar*data);//>printf("test");std::cout我怎样才能实现这种/类似的行为? 最佳答案 @KonradRudolph是对的,您完全可以轻松地做到这一点,至少对于cout/cerr/clog而言。您甚至不需要自己的streambuf实现,只需使用ostringstream。//Redirectcout.streambuf*o

C++:重定向 STDOUT

在我的应用程序中,我想将通常会转到标准输出流的输出重定向到我定义的函数。我读到您可以将stdio重定向到文件,那么为什么不重定向到函数呢?例如:voidMyHandler(constchar*data);//>printf("test");std::cout我怎样才能实现这种/类似的行为? 最佳答案 @KonradRudolph是对的,您完全可以轻松地做到这一点,至少对于cout/cerr/clog而言。您甚至不需要自己的streambuf实现,只需使用ostringstream。//Redirectcout.streambuf*o