我有一个模型,我有一个视图,显示一个基于该模型创建新对象的表单.我们称之为那种形式Form1.
用户提交后Form1,将创建该对象.然后,我想在下一页上显示第二个表单Form2,该表单要求用户在将对象保存到数据库之前检查各种选项.
我的问题可能非常基本.我不知道如何创建Form2,因为它不直接与模型绑定.因为我是Rails新手,所以我只创建了以下表格:
form_for(@object) { |f| ... }
Run Code Online (Sandbox Code Playgroud)
@object 是从模型实例化的对象
问题:我不相信这种代码在我的目的下会起作用.我如何创造Form2,因为它不能基于@object或@object模型?
我的应用程序中的一些细节:
Form1在重定向到OAuth服务器之前,站点接受values().
当用户在OAuth服务器上验证其凭据时,她将被重定向回我的站点.一个XML-RPC请求,然后获取关于用户的账户上的信息OAuth服务器.
该XML响应可能表明用户只有一个帐户上的OAuth服务器.如果是这样,则从中检索一些值XML并将其添加到对象中 - 然后(最终)将其保存在数据库中 - 并将用户重定向到成功页面.
但是,如果XML响应表明用户在OAuth服务器上有多个帐户,我想显示一个表单(Form2),允许用户选择OAuth服务器上与我的站点关联的帐户.因此,Form2确实要求用户创建多少对象,而不是关于对象的特定属性.
我想创建一个进度条来指示批处理作业的状态Ruby.
我已经阅读了一些关于使用(n)curses的教程/库,其中没有一个特别有助于解释如何在终端中创建"动画"进度条或使用curses .Ruby
我已经知道使用一个单独的线程来监视给定作业的进度,我只是不确定如何继续绘制进度条.
更新
ProgressBar课程非常直接,完美地解决了我的问题.
复制一个问题及其子问题是一个本机内置功能,因此工作得很好.
但有多种方法可以多次这样做?就像重新创造一个问题(包括它的孩子)二十或五十次?
编辑2
这个新功能应该可以通过Redmine界面访问,并兼容任何浏览器.
它是一个全新的插件,内置复制功能的扩展,对一个PHP-script或其他任何东西的调用并不重要.由于兼容性(网络,浏览器等),我想完全服务器端修改是唯一的方法.
必须更改默认插件的哪些部分(在投票教程中创建)或核心元素?
我在哪里可以找到本机问题复制功能的代码?
或者 - 如果所有这些都太复杂 - 我如何编写我的插件指向直接PHP操作SQL数据库的文件?
编辑:
澄清:就像正常的复制功能(在上下文菜单或右上角的链接中,我不在乎)我想复制一个问题及其子问题n次.要让用户设置金额n,任何用户编号输入都可以,例如文本框,弹出窗口等.
我正在尝试使用Devisefor my Rails/ iOSapp 实现用户身份验证.我遇到了麻烦,因为我主要是Devise 的" 用户 ",并且正在将它用于纯网络应用程序,所以不需要为幕后发生的事情烦恼太多.现在我必须为基于API的应用程序构建身份验证,这完全是一个不同的世界.
我已经阅读了网络上处理这个主题的每一个教程(由于token_authenticatable已被弃用的事实,它们中的大多数已经过时)但仍然无法理解我需要做什么.
我还阅读了GitHub关于这个问题的原始要点,但仍然不明白他们在谈论什么.
我确信有些人就像我一样,只是一个" 用户 ",Devise所以不知道幕后发生了什么.
任何人都可以为移动应用程序实现基于API的身份验证系统提供简洁的解决方案吗?我的意思是它不可能那么复杂,Devise以前太棒了,因为我需要做的就是跑步rails generate,但这对我来说是个噩梦.
我有Rails3.2.3 Apache和Passenger.
我有一个项目在开发模式下工作.当我将项目切换到生产模式(Passenger标准)时,它给了我一个HTTP Error 500:
我们很抱歉,但有些不对劲.
即使这样也会发生WEBrick.有人能帮助我吗?
编辑:
我的生产环境文件:http: //pastebin.com/ZAudSzkc
我使用Rails 4.1.1,Thin 1.6.2,Redis 2.8.9(含Hiredis司机),和faye-rails宝石.
我faye-rails用来订阅几个模型的变化,我Redis用于其他(无关)的东西.
当我试图调用create一个faye-observed模型(让我们说Apple)时,它会抛出这样的错误:
2.1.1 :001 > Apple.create
(0.1ms) BEGIN
SQL (0.4ms) INSERT INTO `apples` (`created_at`, `updated_at`) VALUES ('2014-06-01 17:26:54', '2014-06-01 17:26:54')
(7.6ms) ROLLBACK
RuntimeError: eventmachine not initialized: evma_install_oneshot_timer
from /home/david/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:323:in `add_oneshot_timer'
from /home/david/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:323:in `add_timer'
from /home/david/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/em/timers.rb:12:in `initialize'
from /home/david/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/em/deferrable.rb:173:in `new'
from /home/david/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/em/deferrable.rb:173:in `timeout'
from /home/david/.rvm/gems/ruby-2.1.1/gems/faye-1.0.1/lib/faye/protocol/envelope.rb:11:in `initialize'
from /home/david/.rvm/gems/ruby-2.1.1/gems/faye-1.0.1/lib/faye/protocol/client.rb:357:in `new'
from /home/david/.rvm/gems/ruby-2.1.1/gems/faye-1.0.1/lib/faye/protocol/client.rb:357:in `transport_send'
from /home/david/.rvm/gems/ruby-2.1.1/gems/faye-1.0.1/lib/faye/protocol/client.rb:346:in `block in send'
from /home/david/.rvm/gems/ruby-2.1.1/gems/faye-1.0.1/lib/faye/protocol/extensible.rb:23:in …Run Code Online (Sandbox Code Playgroud) 我正在Windows上开发Ruby on Rails.
我们的本地网络出了问题,无法访问https://www.rubygems.org,好像被阻止了什么.
但我可以通过http://www.proxyfoxy.com访问它.
以下是结果bundle install:
$ bundle install
从https://rubygems.org/获取源索引
由于错误而重试抓取器(2/4):Bundler :: HTTPError无法从https://rubygems.org/获取规范
由于错误而重试抓取器(3/4):Bundler :: HTTPError无法从https://rubygems.org/获取规范
由于错误而重试抓取器(4/4):Bundler :: HTTPError无法从https://rubygems.org/获取规范
无法从https://rubygems.org/获取规格
有没有其他方法来安装宝石bundle install?
如果要在 Ruby 中制作一个 Tk GUI 并使用不同的全局变量名称制作多个复选框。最有效的方法是什么?
我找到了instance_variable_set,但这不适合我的场景。
我想知道是否有像global_variable_set.
例如。
info = [orange,apple,banana,grape,watermelon]
$var = TkVariable.New
info.each_with_index {|inf,index|
TkCheckButton.new(frame1) do
text "#{inf}"
onvalue "#{inf}"
variable global_variable_set("$var#{index}", inf)
end
end
Run Code Online (Sandbox Code Playgroud) 我在Oracle中构建条件更新语句时遇到问题.为了便于理解,我将简化问题,基本上我的更新语句应如下所示:
UPDATE SAMPLE_TAB1 t
SET t.sample_column1 =NVL(t.sample_column1, **SOME LOGIC**);
Run Code Online (Sandbox Code Playgroud)
该***SOME LOGIC***部分应如下所示:(请考虑这只是一个伪代码)
IF ((SELECT sample_column2 FROM SAMPLE_TAB2
WHERE sample_column2= sample_value2
AND sample_column3 = sample_value3 )='FALSE' THEN
t.sample_column1 =0;
ELSE
t.sample_column1 =(SELECT sample_column1 FROM SAMPLE_TAB3
WHERE sample_column4= sample_value4
AND sample_column5 = sample_value5 )
END IF;
Run Code Online (Sandbox Code Playgroud)
关于这个问题的任何想法都会受到欢迎.谢谢.
我刚开始学习Ruby!
我有以下字符串:
"Mark Smith, 29"
Run Code Online (Sandbox Code Playgroud)
我想将它转换为哈希,所以它看起来像这样:
{:name=>"Mark", :surname=>"Smith", :age=>29}
Run Code Online (Sandbox Code Playgroud)
我编写了以下代码,以减少输入:
a1 = string.scan(/\w+|\d+/)
Run Code Online (Sandbox Code Playgroud)
现在我有一个字符串数组.是否有一种优雅的方式将其转换为哈希?我知道我可以做三次这样的迭代:
pers = Hash.new
pers[:name] = a1[0]
pers[:surname] = a1[1]
pers[:age] = a1[2]
Run Code Online (Sandbox Code Playgroud)
但也许有办法使用.each方法或类似的东西吗?或者也许可以使用预定义的键定义类Person,(:name, :surname, :age)然后将我的字符串"抛出"到此类的实例中?