当我使用VIM时,我总是可以看到多个窗口.有时我想有一个简单的方法,在那些地方交换那些窗户.有没有插件,宏等,使这更容易?顺便说一句,我使用MiniBufExplorer.
我想使用instance_eval增强现有的类.原始定义包含验证,需要存在某些字段,即:
class Dummy < ActiveRecord::Base
validates :field, :presence => true
end
Run Code Online (Sandbox Code Playgroud)
现在我想使用instance_eval(或任何其他方法,实际上)将其更改为可选:
Dummy.instance_eval do
...
end
Run Code Online (Sandbox Code Playgroud)
删除验证的正确语法是什么,因此该字段是可选的.我宁愿直接在模型层上执行此操作,而是在控制器或视图中执行奇怪的操作.实际上并不需要使用instance_eval,但据我所知,这通常是增强Rails中类的最佳方法.
编辑#1
一般来说 - 原始类是gem的一部分,我不想分叉它,也不想绑定到特定的版本.一般原因并不重要.简单地编辑原始模型比猴子修补具有更糟糕的后果.
我安排一份工作,比如10分钟.如何在不使用模型中任何类型的脏字段的情况下正确取消此特定作业等.是否有任何要求删除特定工作或与特定模型,实例等相关的工作的电话?
有没有什么简单的方法可以将developmenet数据库中的数据复制到测试数据库中?我知道这是一种复制模式和重新创建数据库的方法,但是有没有任何rake任务用开发一个填充测试数据库?
我需要将一个集合传递给Formtastic中的标准选择输入:
f.input :apple, :as => :select, :collection => Apple.all
Run Code Online (Sandbox Code Playgroud)
问题是,虽然我需要Formtastic来访问与名称不同的方法.现在这确实是一个问题.我总是可以传递数组
f.input :apple, :as => :select, :collection => Apple.map { |a| a.format_name }
Run Code Online (Sandbox Code Playgroud)
问题是,在此之后,我将在控制器中获取字符串而不是不需要的ID.我试图传递Hash:
options = Hash.new
Apple.each { |a| Apple.store(a.format_name, a.id) }
f.input :apple, :as => :select, :collection => options
Run Code Online (Sandbox Code Playgroud)
现在问题是,因为我使用的是Ruby 1.8.7,所以Hash命令是未指定的,我当然需要有序输入...
我可以想象一些解决方案,但所有这些都需要不必要的代码.
知道怎么解决这个问题吧?
I18n后备加载:
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
Run Code Online (Sandbox Code Playgroud)
现在有什么想法暂时禁用它吗?我有表单,我想编辑各种语言版本,并且使用后备我得到默认语言的字段,如果给定的翻译还没有.
ruby-on-rails internationalization globalize2 ruby-on-rails-3
的Gemfile:
...
gem 'paperclip', :git => 'git@github.com:mdrozdziel/paperclip.git'
...
Run Code Online (Sandbox Code Playgroud)
在推送应用程序时,我收到以下错误.我链接的回购是公开的.
Fetching git@github.com:mdrozdziel/paperclip.git
Failed to add the host to the list of known hosts (/home/group_home/.ssh/known_hosts).
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
An error has occurred in git when running `git clone "git@github.com:mdrozdziel/paperclip.git" "/disk1/tmp/build_28099_23931178722320/.bundle/gems/ruby/1.8/cache/bundler/git/paperclip-c032df0dc0463697a1ce5ae3761bec95be700815" --bare --no-hardlinks. Cannot complete bundling.
Run Code Online (Sandbox Code Playgroud)
知道这里有什么问题吗?控制台显示/ home/group_home /不存在...
我想在我的Web应用程序中包含非常常见的功能.我希望将时间/日期写为现在的时间距离,例如(2小时前).
Rails有很好的实现这个功能,但我需要用纯javascript编写的东西.问题是,我的应用程序中的大量页面都被缓存,唯一可以改变的是实际时间.
JS中是否有任何扩展库可以将日期转换为单词中的时间距离?
除了删除一些特定于MySQL的查询之外,迁移非常顺利.现在的问题是,在开发期间,对DB的查询比以前多得多.
Started GET "/profiles/data" for 127.0.0.1 at Tue Sep 21 10:26:18 +0200 2010
Processing by ProfilesController#data as JSON
User Load (24.3ms) SELECT "users".* FROM "users" ORDER BY updated_at DESC LIMIT 1
CACHE (0.0ms) SELECT "users".* FROM "users" ORDER BY updated_at DESC LIMIT 1
SQL (10.5ms) SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"users"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum …
Run Code Online (Sandbox Code Playgroud) 我有一个没有任何相关型号的控制器.该控制器将跨越各种模型的一些信息.我在那里有很多动作,它们在页面上定义了某些视图.为这个控制器组织路线的最佳方法是什么?
我想要的是/仪表板/某些东西指向仪表板控制器中的任何操作.不是像new/edit那样的动作,而是任意的(showstats等).
通过反复试验,我做了类似这样的事情:
map.dashboard 'dashboard/:action', :controller => 'dashboard', :action => :action
Run Code Online (Sandbox Code Playgroud)
现在可以使用帮助程序访问这些URL:
dashboard_url('actionname')
Run Code Online (Sandbox Code Playgroud)
这个approch似乎工作正常,但这是要走的路吗?我不太清楚,如何生成辅助方法名称.如何生成与基本控制器"action_controller_url"中相同的帮助程序名称?这将更通用,并使代码更加一致.
提前致谢.
ruby ×4
activerecord ×1
delayed-job ×1
editing ×1
formtastic ×1
globalize2 ×1
heroku ×1
javascript ×1
jquery ×1
postgresql ×1
rake ×1
routing ×1
unit-testing ×1
url-routing ×1
validation ×1
vim ×1