文章列表
本人博客逐步搬入个人博客,地址如下:www.sevenmike.com
如对本人文章有兴趣可订阅并关注
有问题大家一起讨论
- 2011-03-02 22:05
- 浏览 647
- 评论(0)
仅转载了,还没有用过,如果有问题可留言,大家一起讨论
在进行 Rails 部署的时候你可以直接从 svn 或者 git 下面更新代码,运行 db:migrate 来进行数据库的更新,然后进行这样那样的操作后,再启动服务器,便可进行部署,即便你只有一台机器,你也会觉得太麻烦,如果你需要多台机器来运行,那你可 能就会觉得每次手工部署都是一场恶梦,你可以使用 shell 脚本来简化部署的程序。在用 Rails 开发应用时,你可以使用 Capistrano 插件来进行更简单的部署工作。简单来说,Capistrano 是一个通过 SSH 并行的在多台机器上执行相同命令的工具,使用用来安装一整批机器。 它 ...
require 'soap/wsdlDriver'
#url为访问地址
url = " https://haha/gate?wsdl"
#获取服务
drv = SOAP::WSDLDriverFactory.new(url).create_rpc_driver
#gatewayOrderQuery是web serveice提供的方法,可以带做个参数,注意参数需要类型转换为SOAP的类型,参数具体的类型有服务决定,请看文档
result = drv.gatewayOrderQuery('version'=>SOAP::SOAPString.new('v2.0'),'s ...
在html的checkbox里,选中的话会有属性checked="checked"。
如果用一个checkbox被选中,alert这个checkbox的属性"checked"的值alert($"#xxx".attr("checked")),会打印出"true",而不是"checked"!
如果没被选中,打印出的是"undefined"。觉得很奇怪是吗?继续看下去~
不要尝试去做这样的判断:if($"#xxx".attr(" ...
友好的登录系统
按照目前的代码,如果管理员尝试在未登录的状态下访问受限的页面,他就会被引到登录页面上;
在完成登录之后,接着出现的是统一的状态页面——用户最初的请求已经被遗忘了。如果你愿意的话,
也可以对应用程序稍作修改,在用户登录之后将其引到最初请求的页面。
首先,如果 authorize()方法需要让用户去登录的话,应该同时将当前请求的 URI 记在 session
中。
def authorize
unless User.find_by_id(session[:user_id])
→
session[:original_uri] = request.request_uri
fl ...
今天我们看看怎样在数据库记录用户操作
db/migrate/002_add_audit_trails_table.rb
class AddAuditTrailsTable < ActiveRecord::Migration
def self.up
create_table :audit_trails do |t|
t.column :record_id, :integer
t.column :record_type, :string
t.column :event, :string
t.column :user_ ...
1,Enumerable#group_by():
<%
employees = Employee.find(:all).group_by{|employee|
employee.title
}
%>
<% employees.each do |title, people| %>
<h2><%= title %></h2>
<ul>
<% people.each do |person| %>
<li><%= person.name ...
obj = Object.new
if obj.respond_to?("talk")
obj.talk
else
puts "Sorry, object can't talk!"
end
print "Search for: "
request = gets.chomp
if request == "writer"
puts book.writer
elsif request == &quo ...
4 正则路由
Rails支持正则路由——是把URLs映射到控制器和方法上。可以应用程序中使用RESTful路由和正则路由两种风格。建议多使用RESTful风格,因为这更容易编写和阅读。
4.1 Bound Parameters
设置正则路由的时候,:controller映射 ...
可以自定义validate(), 这个方法在每次保存数据时都会被调用.
如:
def validate
if name.blank? && email.blank?
errors.add_to_base("You mustspecify a name or an email address")
end
end
同时也可以自定义 validate_on_create(),validate_on_update()方法.
valid?()方法可以随时调用,用来测试数据是否能通过校验
返回的错误信息可用 error_messages_for(model)方 ...
flash 提示的自动消失:
<body onload='<%= visual_effect(:fade, 'notice',:duration => 2.0) if flash[:notice] %>'>
将该行加到 layout 中即可,页面加载 2 秒后,div id 为 notice 的区域将会自动消息。
two way crypt:
#http://crypt.rubyforge.org/blowfish.html
#gem install crypt
require 'crypt/blowfish'
blowfish = Crypt::Blowfish.new("A key up to 56 bytes long")
plainBlock = "ABCD1234"
p plainBlock
encryptedBlock = blowfish.encrypt_block(plainBlock)
p encryptedBlock
dec ...
#首先,在layout里边的合适地方添加debug,并且使用折叠效果
<% if ENV["RAILS_ENV"] == "development" %>
<div id="debug">
<a href="#" onclick="Element.toggle('params_debug_info');return false">params</a>|
<a href="#" oncli ...
对于静态站点我们可以利用Rails的cache来管理,如在controller中添加如下代码:
Java代码
after_filter {|c| c.cache_page}
这样将会对该controller的所有action作缓存
注意我们不要对UserProfile等页面做缓存,只针对对所有用户一样的内容做缓存
1. Installing RVM
$ sudo gem install rvm
$ rvm-install
Finally put this lines in your .bash_profile or .bashrc:
if <a href="/pages/s-home-rvm-scripts-rvm?create=true&title= -s $HOME/.rvm/scripts/rvm " class="missing_page"> -s $HOME/.rvm/scripts/rvm </a> ; ...