我最近克隆了rails.vim(vim-rails)希望修改它以使用Padrino项目.
目前我正在尝试让Rcontroller
命令不仅可以查看应用程序/控制器(适用于rails),还可以查看项目中具有名为"controllers"的子文件夹的任何文件夹.所以,当我在命令模式下键入Rcontroller,打标签,我应该能够通过标签admin/controllers/base.rb
,admin/controllers/accounts.rb
,app/controllers/events.rb
等,这将让该插件的用户跳转到控制器的一个Padrino应用的"subapp".例如PADRINO_ROOT/admin
当前controllerList
函数似乎处理这个自动完成,这是我到目前为止(仅从原始源稍微修改)
function! s:controllerList(A,L,P)
let con = padrino#app().relglob("*/controllers/","**/*",".rb")
call map(con,'s:sub(v:val,"_controller$","")')
return s:autocamelize(con,a:A)
endfunction
Run Code Online (Sandbox Code Playgroud)
我在控制器目录之前添加了通配符,但这给出了结果
Rcontroller ers/base
Rcontroller ers/sessions
Rcontroller s/events
对于最后一个,看起来有些奇怪的事情发生在字符串长度或重叠...
理想情况下,我想让它达到键入Rcontroller admin<TAB>
应该导致自动完成的程度Rcontroller admin/controllers/accounts.rb
.同样,Rcontroller app<TAB>
应该导致Rcontroller app/controllers/events.rb
该viewList
函数的代码与此类似,其代码如下:
function! s:viewList(A,L,P)
let c = s:controller(1)
let top = padrino#app().relglob("app/views/",s:fuzzyglob(a:A))
call filter(top,'v:val !~# "\\~$"')
if c != '' && a:A !~ '/'
let local = padrino#app().relglob("app/views/".c."/","*.*[^~]")
return s:completion_filter(local+top,a:A)
endif
return s:completion_filter(top,a:A)
endfunction …
Run Code Online (Sandbox Code Playgroud) 我刚刚使用带有Rails的脚手架设置了一些基本模型,我编辑了视图,以便我从文本字段和选择框中获取输入.以下是一些代码段:
form_for(@town) do |f|
f.text_field :name
.
.
f.select :county_id, @counties.map{|c| [c.name, c.id]}
.
.
end
对文本字段使用验证方法"validates_presence_of"并且在选择框上没有验证我可以输入值并成功写入数据库.当我尝试通过不在文本字段中输入任何内容来测试验证时,我得到一个带有以下消息的NoMethodError
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.map
注意:选择框上没有验证
如果我注释掉"validate_presence_of"行,我可以将空白数据写入数据库,没有任何问题.但是,如果我为文本字段编写验证代码并且它导致整个表单对象显然变为零...... Rails的验证是否会导致此问题?
任何想法/意见都非常感谢.我使用Rails 2.3.4
我目前正在使用以下指南来获取Delphi的文件"LastAccessTime" http://www.latiumsoftware.com/en/delphi/00007.php
使用FindNext,可以访问TSearchRec对象,我可以从该对象访问类型为TFileTime的ftLastWriteTime
当将其转换为TDateTime对象(使用上面的源)然后输出DateTimeToString时,我得到日期和时间,但小时似乎是文件ftLastWriteTime小时值中两位数的总和.
即取代2009/09/03 13:45我得2009/09/03 04:45或者代替2009/09/03 17:45我得2009/09/03 08:45
欢迎提出任何意见,非常感谢