设置bootstrapRails 实战 0x01

本文介绍如何使用RailsComposer快速创建Rails应用程序,包括选择配置项、邮件发送设置、密码策略调整等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一直在学习设置bootstrap之类的问题,今天正好有机会和大家共享一下.

    1. 应用 Rails Composer自动创立项目 

rails new myapp -m https://raw.github.com/RailsApps/rails-composer/master/composer.rb

    Rails Composer是Rails App Composer的简化版本,适合新手使用,教程在这儿https://github.com/RailsApps/rails-composer/

    

    2.  选择1)

I want to build my own application

    因为1)选项可以自行设置所有配置,上面是我选择的

question  Install an example application?

    

    1)

    

    1) I want to build my own application 2) membership/subscription/saas (Stripe or Recurly) 3) rails-prelaunch-signup 4) rails3-bootstrap-devise-cancan 5) rails3-devise-rspec-cucumber 6) rails3-mongoid-devise 7) rails3-mongoid-omniauth 8) rails3-subdomains question Web server for development?

    

    1)

    

    1) WEBrick (default) 2) Thin 3) Unicorn 4) Puma question Web server for production?

    

    3)

    

    1) Same as development 2) Thin 3) Unicorn 4) Puma question Database used in development?

    

    3)注意若选择非SQLite,须要开启相应数据库server

    

    1) SQLite 2) PostgreSQL 3) MySQL 4) MongoDB question Template engine?

    

    1)

    

    1) ERB 2) Haml 3) Slim (experimental) question Unit testing?

    

    2)

    

    1) Test::Unit 2) RSpec question Integration testing?

    

    2)

    

    1) None 2) RSpec with Capybara 3) Cucumber with Capybara 4) Turnip with Capybara question Fixture replacement?

    

    2)

    

    1) None 2) Factory Girl 3) Machinist question Front-end framework?

    

    2)选Zurb貌似会遇到一些问题,这里选Bootstrap

    

    1) None 2) Twitter Bootstrap 3) Zurb Foundation 4) Skeleton 5) Just normalize CSS for consistent styling question Twitter Bootstrap version?

    

    2)

    

    1) Twitter Bootstrap (Less) 2) Twitter Bootstrap (Sass) question Add support for sending email?

    

    3)这里是发邮件服务,如果使用Gmail发邮件则选Gmail,我用的是网易企业邮箱,所以选择SMTP,须要后续配置

    

    1) None 2) Gmail 3) SMTP 4) SendGrid 5) Mandrill question Authentication?

    

    2)先用devise,后续可自行添加OmniAuth

    

    1) None 2) Devise 3) OmniAuth question Devise modules?

    

    3)Confirmable是须要邮件认证的,当地测试需配置邮件发送,当然也可以手动修改数据表或controller

    

    1) Devise with default modules 2) Devise with Confirmable module 3) Devise with Confirmable and Invitable modules question Authorization?

    每日一道理
听,是谁的琴声,如此凄凉,低调的音,缓慢的节奏,仿佛正诉说着什么。音低调得略微有些抖动,听起来似乎心也有些抖动,我感觉到一种压抑的沉闷气息,是否已凝结在这空气中……

    

    2)

    

    1) None 2) CanCan with Rolify question Use a form builder gem?

    

    2)

    

    1) None 2) SimpleForm question Install a starter app?

    

    4)

    

    1) None 2) Home Page 3) Home Page, User Accounts 4) Home Page, User Accounts, Admin Dashboard extras Add 'therubyracer' JavaScript runtime (for Linux users without node.js)? (y/n) extras Set a robots.txt file to ban spiders? (y/n) n extras Create a project-specific rvm gemset and .rvmrc? (y/n) n extras Create a GitHub repository? (y/n) n

    

    这里先不创立Github,当前手动添加BitBucket,Gitlab都可

    

    3. 基本程序创立完成

    上传到Github或其他

    

    4. 看一下目录结构,默认第一个User是 First User,邮箱密码在application.yml中有,创立新的User我们这里因为选择了Confirmable,须要发邮件认证

    

    5. 配置一下邮件发送,我这里用的是网易企业邮箱

    Application.yml的 ADMIN_EMAIL和ADMIN_PASSWORD改成使用邮箱服务的账号密码

# 用admin_email发送确认邮件 devise.rb development.rb production.rb
ADMIN_NAME: iwissen
ADMIN_EMAIL: admin@iwissen.com
ADMIN_PASSWORD: passwd

    devise.rb的config.mailer_sender改成admin_email

config.mailer_sender = ENV['ADMIN_EMAIL']

    

    development.rb 和 production.rb 添加action_mailer的smtp_settings

config.action_mailer.smtp_settings = {
    :address => 'smtp.ym.163.com',
    :port => 25,
    :domain => 'iwissen.com',
    :user_name => ENV['ADMIN_EMAIL'],
    :password => ENV['ADMIN_PASSWORD'],
    :authentication => :plain
  }

    注意development.rb 的 config.action_mailer.perform_deliveries = true, config.action_mailer.raise_delivery_errors = true 而 production.rb 的 errors设成false

    

    当然,使用SettingLogic gem的可以用Setting.xxx,也可以直接上字符串

    这里附上Gmail的设置

config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address              => "smtp.gmail.com",
    :port                 => 587,
    :user_name            => 'poshboytl',
    :password             =>  ENV['GMAIL_PASS'],
    :authentication       => 'plain',
    :enable_starttls_auto => true
  }

    遇到问题都可以在官方action mailer 中找到

    http://guides.rubyonrails.org/action_mailer_basics.html

    这样设置就完成了

    

    6. 为了方便和符合国人习气,把密码长度设为大于即是6(devise默认8),在devise.rb 中,修改

config.password_length = 6..128

    7. rails s 开启服务器,注册新用户测试,查看console里的log

Sent mail to dragonszy@gmail.com (671ms)
Date: Sun, 26 May 2013 16:28:03 +0800
From: admin@iwissen.com
Reply-To: admin@iwissen.com
To: dragonszy@gmail.com
Message-ID: <51a1c793ba301_d983ffdb6345064853e1@MBP.local.mail>
Subject: Confirmation instructions
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<p>Welcome dragonszy@gmail.com!</p>

<p>You can confirm your account email through the link below:</p>

<p><a href="http://localhost:3000/users/confirmation?confirmation_token=2suzwouTz3NoqbzRKsdU">Confirm my account</a></p>

    一般邮件畸形收回或者根本没连的话,浏览器不会raise_error,因为设置了smtp连接,所以错误只能是连不上的错误,检查用户密码是否设置正确,邮箱域名是否是对的

    8. 一切搞定后Github push一下

    9. 自己创立几个一般用户和Admin用户试验一下,可见用Rails Composer还是省下了不少工夫的

文章结束给大家分享下程序员的一些笑话语录: 腾讯的动作好快,2010年3月5日19时28分58秒,QQ同时在线人数1亿!刚刚看到编辑发布的文章,相差才2分钟,然后连专题页面都做出来了,他们早就预料到了吧?(其实,每人赠送10Q币,轻轻松松上两亿!)

--------------------------------- 原创文章 By
设置和bootstrap
---------------------------------

03-08
<think>好的,用户让我介绍一下0x01。先看看之前的对话历史,用户之前问了一个关于C语言中uint32_t和位操作的问题,现在继续询问0x01。可能用户对十六进制表示和位操作不太熟悉,需要详细解释。 首先,0x01是十六进制数,等于十进制的1。需要解释它的表示方式,0x前缀代表十六进制,01是值。用户可能是在代码中看到这个常量,想了解它的含义和使用场景。 接下来,考虑用户的使用场景。之前的对话涉及到位掩码和字节操作,0x01常用来进行位操作,比如检查最低位是否设置,或者进行掩码操作。可能需要举例说明,比如按位与操作,用来提取特定位的状态。 用户可能的深层需求是理解代码中的位操作,或者如何在实际编程中使用这样的十六进制常量。需要结合之前的例子,说明0x01在掩码中的作用,比如(num >> 0) & 0xFF中的0xFF是提取字节,而0x01可能用于检查某一位。 还要注意区分不同进制的表示,比如二进制、十进制、十六进制的转换,帮助用户建立直观的理解。比如0x01的二进制是00000001,这样在按位与操作时,可以保留最低位的信息。 另外,可能用户对字节序或位序有疑问,需要解释大端和小端的影响,但在这个问题中,0x01本身是独立于字节序的,主要涉及单个字节内的位操作。 最后,总结0x01的常见用途,比如标志位、掩码、位设置和清除,以及在不同场景下的应用,确保用户能够全面理解其用途和重要性。</think>`0x01` 是 **十六进制数** 的表示形式,其含义和用途可以分层次解释: --- ### 一、数值本质 1. **进制转换**: - **十六进制**:`0x01` 表示 $1 \times 16^0 = 1$ - **十进制**:`1` - **二进制**:`0000 0001`(8位补全) 2. **前缀意义**: - `0x` 是 C/C++ 语言中标识十六进制数的前缀(其他语言如 Python 使用 `0x`,Java、C# 同理)。 --- ### 二、编程中的典型用途 #### 1. **位操作(Bitwise Operations)** ```c uint8_t flags = 0x01; // 定义一个8位变量,初始值为二进制 00000001 ``` - **检查最低位**:`if (flags & 0x01) { ... }`(判断第0位是否为1) - **设置最低位**:`flags |= 0x01;`(将第0位置1) - **清除最低位**:`flags &= ~0x01;`(将第0位置0) #### 2. **掩码(Masking)** ```c uint32_t num = 0x12345678; uint8_t low_byte = num & 0xFF; // 提取低8位(结果为0x78) uint8_t specific_bit = num & 0x01; // 提取第0位 ``` #### 3. **硬件寄存器操作** - 在嵌入式开发中,常用于控制硬件寄存器的特定位: ```c // 假设控制LED的寄存器地址为0x40000000,第0位控制LED亮灭 volatile uint32_t *led_reg = (uint32_t*)0x40000000; *led_reg |= 0x01; // 点亮LED *led_reg &= ~0x01; // 关闭LED ``` --- ### 三、不同场景的扩展意义 1. **布尔标志**: - `0x01` 常表示一个布尔开关(例如 `1` = 开启,`0` = 关闭)。 2. **数据结构的对齐**: - 在内存对齐操作中,`0x01` 可用于检测地址是否为奇数(例如 `addr & 0x01`)。 3. **网络协议**: - 在协议头中,`0x01` 可能表示特定选项或版本号(如 IPv4 的某些标志位)。 --- ### 四、对比其他表示 | 进制 | 表示 | 等价值 | 适用场景 | |------------|-----------|--------|------------------------| | **十六进制** | `0x01` | 1 | 位操作、硬件编程 | | **十进制** | `
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值