我有一个名为的模型Person,我希望有一个名为的资源Employee.我发现这会阻止form_for魔法.
我需要传入@person对象本身,因此form_for可以选择正确的操作路径(创建或更新).
然而,这将意味着form_for使用POST people_path和PUT person_path输出,而不是employee_paths.
当我的模型和控制器有不同的名称时,是否可以拥有所有Rails约定的好东西?
我在erb中有以下代码可以正常工作:
<div id='flash_<%= flash.keys.first.to_s %>'>
<%=h flash[flash.keys.first] %>
</div>
Run Code Online (Sandbox Code Playgroud)
我想把它转换为haml:
#flash_#{flash.keys.first.to_s}
=h flash[flash.keys.first]
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
Illegal element: classes and ids must have values.
Run Code Online (Sandbox Code Playgroud)
这是奇怪的,因为有IS值,'flash_'部分始终存在,即使我这样做,我也会得到错误:
#flash_#{nil.object_id}
Run Code Online (Sandbox Code Playgroud)
显然我的Ruby插值在haml中有些不对劲,但我无法做到.根据文档http://haml.info/docs/yardoc/file.REFERENCE.html#ruby_interpolation_# {}用于内插Ruby,它适用于这种情况:
#flash_
#{flash.keys.first.to_s}
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的.
总之,我想得到以下输出:
<div id="flash_foo"> blahblah </div>
Run Code Online (Sandbox Code Playgroud)
但它也可以:
<div id="flash_"></div>
Run Code Online (Sandbox Code Playgroud)
如何用haml获得?
我正在尝试对我无法弄清楚的 mysql 查询进行一些排序。
id | status | created_at
------------------------
1 | open | 1348778070
2 | closed | 1348711241
3 | open | 1348839204
4 | closed | 1348738073
5 | banned | 1348238422
Run Code Online (Sandbox Code Playgroud)
我如何对上表进行排序,以便按 ASC 顺序首先显示“打开”记录;然后非打开记录在 DESC 顺序中排第二?换句话说,是否有基于某种条件的动态二级排序方向?
我尝试了两个 SELECT 查询的 UNION 并在其中排序,这不起作用,因为 UNION 默认情况下会生成一组无序的行。
此外,我尝试了一个伪列,它从大量数字中减去 created_at 时间戳,对于关闭的状态记录,所以我可以按 ASC 订购以获得如下结果......
SELECT table.*, (table.created_at) as tmp_order FROM table
WHERE table.status = 'open'
UNION
SELECT table.*, (999999999 - table.created_at) as tmp_order FROM table
WHERE table.status = 'closed'
ORDER BY tmp_order ASC …Run Code Online (Sandbox Code Playgroud) 这是一个外部类,其class方法已被覆盖。
class Foo
def class
"fooo"
end
end
class Boo < Foo
end
class Moo < Foo
end
Run Code Online (Sandbox Code Playgroud)
现在,我有一个子类的实例。是否可以找出它属于哪个类?
foo.class # currently returns 'fooo', I want get Boo or Moo.
Run Code Online (Sandbox Code Playgroud) 如果我有一个"Wed, 22 Jun 2011 09:43:58 +0200"来自客户端的表单的时间字符串,我希望保存它的时区.这很重要,因为重要的不仅是绝对的UTC时间,还有时区.
Time.zone.parse(t)将时间转换为当时Time.zone正在使用的区域,丢失源时区.
我是否必须从上面的字符串中手动提取时区,或者是否有惯用的方法来执行此操作?
我cap deploy:migrate突然停止了工作,但出现了错误:
*** [err :: 1.2.3.4:2222] bash: -c: line 1: syntax error: unexpected end of file command finished in 559ms
failed: "/usr/local/bin/rvm-shell 'ruby-1.9.2-p0@gemset' -c 'cd /home/user/app/releases/20111122182205 && #<Capistrano::Configuration::Namespaces::Namespace:0xa6a0cc> RAILS_ENV=staging db:migrate'" on 1.2.3.4:2222
Run Code Online (Sandbox Code Playgroud)
显然这个错误与这不是一个有效的命令有关... #<Capistrano::Configuration::Namespaces::Namespace:0xa6a0cc>
但我不知道最近会发生什么变化可能导致它.有任何想法吗?
更新
我对我的代码没有任何改变,但我可能已经摆弄了环境.我想知道是否可能是由于不同的宝石和capistrano的版本.看起来有或没有bundle exec调用之间存在不同的版本.
我正在测试一个方法如何处理302 HTTPError异常.我试图将一个方法调用存根以编程方式引发一个,但是它继续抱怨错误的参数数量错误(0表示2)
代码测试了这个特定的行:
document = Nokogiri.HTML open(source_url)
Run Code Online (Sandbox Code Playgroud)
在规范中,我将其描述为:
subject.stub(:open).and_raise(OpenURI::HTTPError)
subject.should_receive(:ended=).with(true)
subject.update_from_remote
Run Code Online (Sandbox Code Playgroud)
我不认为它与Nokogiri.HTML()或Open-uri.open()有关,为什么会发生这种情况呢?
另外,我如何尝试将此HTTPError作为302重定向错误?谢谢
谁能在这里告诉我Ruby宝石rubysdl和ruby-sdl-ffi速度差异之间的区别?如果是这样,你更喜欢哪一个?我想知道我写的是我的宝石,Rubydraw(位于这里).
提前致谢!
我有这个验证
validates :contact_id, :presence => true, :uniqueness => {:message => 'has an account already.'}
Run Code Online (Sandbox Code Playgroud)
在application.rb模型中
一切都很好,但如果状态"无效",我只需要进行此验证
例如,在应用程序表中有一个被调用的字段state,如果有contact_id一个用户的应用程序且状态为"无效",则此验证不应生效,应让用户保存应用程序
昨晚我觉得我做了一些能够改变轨道开发环境的东西,而且我无法扭转我所做的事情.
我将更新迁移到生产中,并且在预编译样式表时遇到一些问题,因此我退出了更改并决定在我的开发计算机上尝试预编译.
长话短说,预编译在我的开发机器(本地)上失败但是当我试图启动我的测试系统时我得到了这个错误:
Devise/sessions中的Sprockets :: CircularDependencyError #new
/app/assets/stylesheets/application.css已被要求
我确定这与我尝试的预编译有关,即使它失败了,因为在此之前一切正常.
我尝试进行预编译:清除因为我读到了某个会反转/删除预编译的地方.
我在这里错过了什么吗?预编译是否会更改我需要手动重置的配置文件?
这是在Ubuntu 11.10上运行的rails 3.1.
ruby ×4
capistrano ×1
datetime ×1
exception ×1
ffi ×1
gem ×1
haml ×1
mysql ×1
open-uri ×1
precompile ×1
rspec ×1
rubygems ×1
sdl ×1
sql-order-by ×1
timezone ×1
validation ×1