1.部署时遇到 HTTP 400 错误
找了半天才发现 是URL路径里用了下划线导致了这个问题。URL不能包含下划线…… 还真没注意这个东西。
2.过滤掉html标签
RAILS提供了方法 strip_tags。 自己还写了半天正则。。 餐具
3.从formbuilder中直接获取对象
form_for(@user) do |f|
f.text_field :name == f.object.name
end
动态创建nested_attributes
def link_to_add_fields(name, f, association)
new_object = f.object.class.reflect_on_association(association).klass.new
fields = f.fields_for(association, new_object, :child_index =>"new_#{association}") do |builder|
render(association.to_s.singularize + "_fields", :f => builder)
end
link_to_function(name, h("add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")"))
end
state_machine出现莫名其妙的错误
今天给一个类加上state_machine 结果总是报一些莫名奇妙的i18n错误 检查半天发现是给某个event定义名字的时候用到了 validate 。 而这个词是关键字……
Object.send 困惑多时的问题终于解决了。。
这是不知道.send方法时的写法
methods_array = %w {up down left right}
class Cuby
def move_position(act)
eval("self.#{act}")
end
end
知道了就这样写……
methods_array = %w {up down left right}
class Cuby
def move_position(act)
self.send(act) if self.respond_to?(act)
end
end
Rails console中输出sql
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Base.clear_active_connections!
Rails 常用
capitalize 大写
constantize 字符串转为对象 # "Object".constantize => Object
"active_record".camelize # => "ActiveRecord"
返回来源页面
session[:return_to] ||= request.referer
redirect_to session[:return_to]