Rails应用开发体验(1)

[size=large][b]前言[/b][/size]
之前对Rails一直在了解层面,没真正动手做过(惭愧啊,几本Rails的书摆在书架中都2年了),这次要帮朋友做一个简单的应用系统,决定真正用一把Rails,在这里将开发过程中遇到的问题和一些经验记录在这里备忘,也给遇到相似问题的入门者一个参考,不打算写一个从0开始的一个入门说明,而是准备形成个一个入门实践FAQ,所以如果希望从这里从0开始入门开发Rails应用应用的读者还是华丽的跳过吧,随便弄本书比我这里写的全面多了;这里记录的问题也都是比较低级的,各位Ruby&Rails大侠也请华丽的飞过吧。

[size=large][b]安装[/b][/size]
没那么丰富经验,先按简单的来吧,在Windows平台上,使用[url=http://rubyforge.org/projects/instantrails/]InstantRails[/url]整合安装环境。InstantRails最新版本为2.0,内部集成Ruby Rails Mysql等开发必须环境,一键安装,非常方便。
[color=red]注意:[/color]
1. 如果Windows环境中有IIS服务,会与InstantRails中集成的Apache端口冲突,导致Apache启动失败。
2. 如果原系统中已安装过MySQL,会导致InstantRails中集成的MySQL冲突,导致MySQL启动失败。
3. IntstantRails2.0中集成的Rails版本为2.0.2,市面上Rails参考图书介绍的多数都是Rails1.x环境的示例,常见问题是按照参考书实现自动化scaffold失败和分页功能paginate错误

[size=large][b]数据库初始化[/b][/size]
InstantRails中的Apache和MysQL启动成功后,可以通过菜单Configure->Database(via PHPAdmin)登陆MySQL图形化管理界面,也可自己行通过IE访问
[color=red]注意:[/color]
1. 创建数据库时使用字符集[color=blue]UTF-8 general ci[/color]支持中文即没有问题
2. PHPAdmin手动访问地址 http://localhost/mysql
3. 集成的MySQL用户名root,口令为空

[size=large][b]第一个问题 -- 自动Scaffold[/b][/size]
按照书上的例子一步一步走下去,都还没啥问题,而且之前还有Grails应用开发经验,也算轻车熟路。但没走多远问题就来了,在Controller中声明自动Scaffold,程序华丽的报错
[color=red]undefined method `scaffold' for AdminController:Class[/color]

class AdminController < ApplicationController
scaffold :product
end

上网一查,这类问题还真多,主要是Rails2.0版本已经不支持自动Scaffold了,自动Scaffold作为插件需要额外安装,详细解决办法网上好多,我就不复述了。反正我没装,既然2.0不支持了就不用了呗,一定有更好的替代方法。

[size=large][b]第二个问题 -- 新的静态Scaffold命令[/b][/size]
动态不行用静态,没想到静态也跑不同,直接按书上的例子执行

ruby script/generate scaffold Admin

再次华丽的报错[color=red]wrong number of arguments (1 for 2)[/color]
原来又是Rails2.0版本的问题,生成静态Scaffold的命令已经变化,类似这样

ruby script/generate scaffold product name:string phone:string addr:string

这个命令会同时生成相关文件:
Model、Controller、Views、Tests、[color=red]migrate[/color]
凭当前我的理解,Rails2.0是推荐通过model指导产生数据表,而不是像书上写的那种Rails1.x顺序,先创建数据表,再产生model及action,还要进行model和action的绑定,应该是更敏捷了;

[color=blue][size=large][b]番外篇 -- 开发工具[/b][/size][/color]
羡慕Mac上的Textmate不是一年两年了,可惜没有足够的米入手任何带有Mac字样东西,干咽几口口水想想算了。
[b][size=large]轻量级IDE[/size][/b]
据观察,Windows上长的和Textmate最像的轻量级IDE有2款: Intype和e-texteditor,可惜Intype动力不足,太长时间没动静了;e-texteditor发展依旧火热,当前最新版本为1.0.39,网上已有破解,各位童鞋麻烦自己去找吧,直接公开发破解还得有点不好意思。本人开发即使用e-texteditor(有些关于Ruby&Rails的Bundles推荐更新到最新版本)

[b]e-texteditor使用经验[/b]
1. 安装过程中弹出一堆警告,因为和Windows平台文件路径及命名规则不符合,全部Ignore即可,不影响使用。
2. 将e-texteditor中的setting->keep state between sessions选项去掉,可以增强启动速度,不会每次打开都加载之前打开的文件。
3. 通过菜单Bundles->Edit Bundles->Show Bundle Editor,将其中的JavaScript Tools中的最后一项Validate Syntax Quick快捷键(Ctrl+S)取消或重新设置,因为这项功能与平时保存文件快捷键冲突,而且要借助Cygwin环境,所以在编辑JS文件时,保存文件就会弹出要求安装Cygwin的对话框。重设这个快捷键就OK了。
4. Cygwin应该会大大增强e-texteditor功能,但我这里安装太费劲,好像东西很大,而且要安装哪些也不太知道,所以没有安装,不影响日常工作使用。

[b][size=large]重量级IDE[/size][/b]
NetBeans、RadRails、RubyMine,前2个工具都是免费的,直接download就可以用。RubyMine是JetBrains的产品,当前最新版本为2.0,据评价在几款重量级IDE中表现最为出色。RubyMine2.0网上也有破解版本了,但抱歉,不好在这里发布,各位童鞋请谅解。

开发环境准备介绍到这里吧,后面就该介绍真正开发中遇到的问题了,To Be Continue...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于PyTorch的Embedding和LSTM的自动写诗实验LSTM (Long Short-Term Memory) 是一种特殊的循环神经网络(RNN)架构,用于处理具有长期依赖关系的序列数据。传统的RNN在处理长序列时往往会遇到梯度消失或梯度爆炸的问题,导致无法有效地捕捉长期依赖。LSTM通过引入门控机制(Gating Mechanism)和记忆单元(Memory Cell)来克服这些问题。 以下是LSTM的基本结构和主要组件: 记忆单元(Memory Cell):记忆单元是LSTM的核心,用于存储长期信息。它像一个传送带一样,在整个链上运行,只有一些小的线性交互。信息很容易地在其上保持不变。 输入门(Input Gate):输入门决定了哪些新的信息会被加入到记忆单元中。它由当前时刻的输入和上一时刻的隐藏状态共同决定。 遗忘门(Forget Gate):遗忘门决定了哪些信息会从记忆单元中被丢弃或遗忘。它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 输出门(Output Gate):输出门决定了哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。同样地,它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 LSTM的计算过程可以大致描述为: 通过遗忘门决定从记忆单元中丢弃哪些信息。 通过输入门决定哪些新的信息会被加入到记忆单元中。 更新记忆单元的状态。 通过输出门决定哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。 由于LSTM能够有效地处理长期依赖关系,它在许多序列建模任务中都取得了很好的效果,如语音识别、文本生成、机器翻译、时序预测等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值