1. 安装 ruby 1.8.6
下载 ruby-1.8.6.tar.gz 解压
./configure make make install
2. 安装 yum install openssl-devel
然后到 我的 ruby 安装包目录理(rootsrc) 去生成makefile make ,make install
执行 cd rootsrc/ext/openssl;
ruby extconf.rb --with-openssl-include=/usr/include/openssl/ --with-openssl-lib=/home/autotest/new_bak/ruby-1.8.7-p72/ext/openssl/lib
3.安装 rubygems
下载 rubygems-1.3.5.tgz 解压
执行 ruby ruby setup.rb
4. 安装 rails
gem install rails
或: gem install -v=2.1.1 rails 指定版本
openssl 另一个解决方案:
http://www.openssl.org/
下载:openssl-0.9.8k.tar.gz
安装 make make install
到ruby源文件文件夹的/ext/openssl文件夹下
ruby extconf.rb --with-openssl-include=/usr/local/ssl/include/ --with-openssl-lib=/usr/local/ssl/lib
make && make install
• 切换数据库
ruby安装目录\lib\ruby\gems\1.8\gems\rails-2.0.2\lib\rails_generator\generators\applications\app\app_generator.rb
default_options :db => (ENV["RAILS_DEFAULT_DATABASE"] || "sqlite3")
换成 default_options :db => (ENV["RAILS_DEFAULT_DATABASE"] || "mysql")
编辑好以后,重新生成rails工程,然后在database.yml文件就会看到基于mysql的配置信息,按照你机器上的mysql信息相应的填写即可。
写一个我自己的配制
Ruby代码
1. development:
2. adapter: mysql
3. encoding: utf8
4. database: rails (在数据库中创建相应的database)
5. username: root
6. password:
7. host: localhost
*创建表
1.ruby script\generate migration create_docs_store
2.编辑:db/migrate/001_create_docs_store.rb
class CreateDocsStore < ActiveRecord::Migration
def self.up
create_table :documents do |t|
t.column :name, :string, :null => false
t.column :size, :integer, :null => false
t.column :content_type, :string, :null => false
t.column :data, :binary, :limit => 2.megabytes
end
end
def self.down
drop_table :documents
end
end
3.rake db:migrate
next:
a. ruby script/generate migration add_docs_attributes
b. class AddDocsAttributes < ActiveRecord::Migration
def self.up
add_column :documents, :created_at, :timestamp
add_column :documents, :updated_at, :timestamp
add_column :documents, :platform, :string, :limit => 10
end
def self.down
remove_column :documents, :created_at
remove_column :documents, :updated_at
remove_column :documents, :platform. end
end
c. rake db:migrate
a. ruby script/generate migration create_users_table
b. class CreateUsersTable < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.column :usertype, :string, :limit => 5, :null => false
t.column :firstname, :string, :limit => 30
t.column :lastname, :string, :limit => 30
t.column :extension, :string, :limit => 4
end
add_column :documents, :user_id, :integer
end
def self.down
drop_table :users
remove_column :documents, :user_id
end
end
c. rake db:migrate
4.ruby script/generate scaffold document
5.编辑 /app/models/document.rb
class Document < ActiveRecord::Base
belongs_to :user
end
6.ruby script/generate scaffold user
7.编辑 /app/models/user.rb
class User < ActiveRecord::Base
has_many :document
end
8. ruby script/server
*ruby script/generate scaffold XXX 等同以下3个
ruby script/generate controllers XXX
ruby script/generate views XXX
ruby script/generate models XXX
*ruby on rails实现基本的增删查改
1.create table products (
id int not null auto_increment,
title varchar(100) not null,
description text not null,
image_url varchar(200) not null,
price decimal(10,2) not null,
date_available datetime not null,
primary key (id));
2.ruby script/generate scaffold product title:string description:text image_url:string (生成了migrate文件,用来生成数据库表,可以不在第一步创建表,只需创建database)
3.rake db:migrate(根据migrate目录下的文件生成数据库表)
*shopping cart sample
create table products (
id int not null auto_increment,
title varchar(100) not null,
description text not null,
image_url varchar(200) not null,
price decimal(10,2) not null,
date_available datetime not null,
primary key (id));
create table line_item(
id int(11) primary key auto_increment,
product_id int(11) ,
quantity int(11),
unit_price decimal(10,2));
1. ruby script/generate scaffold Product name:string description:text
2. ruby script/generate controller Store index display_cart
controllers/store_contorller.rb
class StoreController < ApplicationController
def index
@products = Product.salable_items
end
def display_cart
@cart = find_cart
@items = @cart.items
end
def add_to_cart
product = Product.find(params[:id])
@cart = find_cart
@cart.add_product(product)
redirect_to(:action => 'display_cart')
end
private
def find_cart
session[:cart] ||= Cart.new
end
end
3. models/cart.rb
class Cart
attr_reader :items
attr_reader :total_price
def initialize
@items = []
@total_price = 0.0
end
def add_product(product)
item = @items.find {|i| i.product_id == product.id}
if item
item.quantity += 1
else
item = LineItem.for_product(product)
@items << item
end
@total_price += product.price
end
end
4.models/line_item.rb
class LineItem < ActiveRecord::Base
belongs_to :product
def self.for_product(product)
item = self.new
item.quantity = 1
item.product = product
item.unit_price = product.price
item
end
end
5.views/store/index.html.erb
<h1>Listing products</h1>
<table>
<tr>
<th>Title</th>
<th>Description</th>
<th>Image url</th>
</tr>
<% for product in @products %>
<tr>
<td><%=h product.title %></td>
<td><%=h product.description %></td>
<td><%=h product.image_url %></td>
<td><%= link_to 'Show', product %></td>
<td><%= link_to 'Edit', edit_product_path(product) %></td>
<td><%= link_to 'Add to Cart',{:action => 'add_to_cart', :id => product },:class => 'addtocart' %></td>
<td><%= link_to 'Destroy', product, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New product', new_product_path %>
6 views/store/display_cart.html.erb
<html>
<head>
<%= stylesheet_link_tag "scaffold", "depot", "admin", :media => "all" %>
</head>
<div id="cartmenu">
<ul>
<li><%= link_to 'Continue shopping', :action => "index" %></li>
<li><%= link_to 'Empty cart', :action => "empty_cart" %></li>
<li><%= link_to 'Checkout', :action => "checkout" %></li>
</ul>
</div>
<table cellpadding="10" cellspacing="0">
<tr class="carttitle">
<td rowspan="2">Qty</td>
<td rowspan="2">Description</td>
<td colspan="2">Price</td>
</tr>
<tr class="carttitle">
<td>Each</td>
<td>Total</td>
</tr>
<%
for item in @items
product = item.product
-%>
<tr>
<td><%= item.quantity %></td>
<td><%= h(product.title) %></td>
<td align="right"><%= item.unit_price %></td>
<td align="right"><%= item.unit_price * item.quantity %></td>
</tr>
<% end %>
<tr>
<td colspan="3" align="right"><strong>Total:</strong></td>
<td id="totalcell"><%= @cart.total_price %></td>
</tr>
</table>
</html>
分享到:
相关推荐
它是一个轻量级的框架提供高性能、Rack API 和中间件支持,配置简单,完全异步处理。 示例代码: require 'goliath' class Hello def response(env) [200, {}, "Hello World"] end end > ruby hello.rb -sv...
ParseConfig以param = value的形式提供对标准配置文件的简单解析。 它还支持嵌套的[group]节。 安装 $ gem install parseconfig 宝石文件 gem 'parseconfig' 用法 配置文件示例可能如下所示: # Example Config ...
翻录Riptables(发音为ri-pee-tables)是用于生成IP表配置的Ruby DSL。 制定了以下设计目标: 必须支持IPv4和IPv6规则必须允许单个文件包含基于给定role和zone多个环境的配置。 必须支持任何类型的表或链。 必须...
一个简单的 ruby 脚本来管理配置文件。 配置文件有两个部分,即内容和配置,由分隔符( __CONFIG__ )分隔,更像 ruby __END__ 。 内容部分可以具有样式 $varname 的简单模板变量,其值在 config 部分中提供。 ...
一个简单而灵活的Ruby事件总线。 使用建议的设置,它将异步处理Resque上的事件订阅。 每个事件订阅也作为单独的Resque作业进行处理。 这允许以不同的优先级(即,在不同的队列中)执行订阅。 也可以将事件发布到...
在AWS Lambda上运行Ruby Sinatra 此示例代码可帮助您开始使用部署在AWS Lambda上的简单Sinatra Web应用程序。 已通过Ruby 2.5.x和bundler-1.17.x测试。 可以在以下位置找到更多详细信息: : 其他资源: AWS Lambda上...
bundle install规格/spec_helper.rb RSpec 配置,包括启动和停止 Go 服务器规格/runner.rb 包含在新进程中生成 Go 服务器并终止相同进程的代码规格/ping_spec.rb 包含测试 Go 服务器的示例规范
简单登录如果失败尝试超过 5 次,这是使用管理员、bcrypt 和阻止用户登录 sinatra 的简单示例。 为电子邮件配置了默认用户: 和密码:123怎么跑$ bundle$ rackup 添加新用户$ bundle console$ require ' ./model '$ ...
Netlify上的Create React App中环境变量的简单示例 该项目是通过引导的。 您将在下面找到一些有关如何执行常见任务的信息。 您可以在找到本指南的最新版本。 目录 自动格式化代码 更改页面<title> 安装依赖...
将ruby-prof与RSpec集成在一起,使您可以轻松地分析RSpec示例。 安装 如果需要在Rails 2.x或RSpec 1.x中使用rspec-prof,请使用版本“ 0.0.3”。 宝石文件: group :test do gem 'rspec-prof' end 用法 使用...
欢迎使用AWS CodeStar示例Web应用程序此示例代码可帮助您开始使用由AWS Elastic Beanstalk部署的简单Ruby on Rails Web应用程序。这是什么该示例包括: README.md-此文件.ebextensions /-此目录包含允许AWS Elastic ...
我的动画列表使用iOS的VIP( )架构的简单示例。 ViewController :控制事件处理,查看生命周期和显示逻辑交互器:应用程序的业务逻辑Worker :管理数据库的请求和响应时需要完成的工作的接口和实现Presenter :格式...
爆头Headshot 是一个 gem,它为 Ruby on Rails 应用程序提供了一种快速简便的方法,可以通过网络摄像头捕捉用户的照片,而无需接触 ActionScript 或 JavaScript 代码。 它通过在页面视图中嵌入 Flash 组件来访问用户...
每个文件夹都包含docker-compose文件,该文件描述了Acra的密钥管理过程和配置。 # 例子里面有什么1个 具有客户端加密(AcraWriter),AcraServer,AcraConnector,PostgreSQLDjango Web应用程序2个 具有服务器端...
Rails 4 上的 Magento REST API Magento 在 Rails 4 上的 REST API 的一个简单示例,其中还包括基准测试 + oauth 注释。安装克隆这个 repo 运行bundle install 运行rails server配置您需要修改的唯一文件是settings/...
DRY可继承配置的简单基类,可以从多个覆盖的yml文件加载。 样本用途包括基于环境的,例如development, test, production和多域白标配置。 可以指定程序化种子配置,以及加载一对多覆盖配置文件的功能。 结果可能...
创建您的初始Procfile 命令行工具允许您使用简单命令创建示例Procfile 。 这将在您当前所在目录的根目录中创建一个Procfile 。 然后,您可以打开此模板并根据您的应用程序进行更改。 $ procman initProcfile示
用法的示例, 。 Ruby(无Rails) 如果要在没有Rails的情况下使用此库,则只需将i18n添加到Gemfile : gem 'i18n' 然后使用一些翻译和默认语言环境配置I18n: I18n . load_path << Dir [ File . expand_...
Vagrant Ubuntu 14.04 Puppet Nginx 显示如何使用和配置托管示例应用程序的 Ubuntu 14.04 Nginx Web 服务器 VM 和 Web 服务的简单示例。 在 Mac OSX 10.9.5、Vagrant 1.6.3、VirtualBox 4.3.6 上创建和测试,否则...
Notejam 学习Web框架的简单方法 您知道框架X并且想要尝试框架Y吗? 从新框架开始的简单方法是将其与您已经知道的框架进行比较。 该项目的目标是通过示例帮助开发人员轻松学习新框架。...配置 验证