Firm#clients.create
(similar to c = Client.new("firm_id" => id); c.save; c
)
create 一句话顶三句话。
rails log
和Server unicorn web
rails
Started GET "/assets/application.js" for 127.0.0.1 at 2012-01-12 14:52:56 +0800
Served asset /application.js - 200 OK (31ms)
记入日志,而且这些内容的级别是info,想隐藏需要调config.log_level = :warn或者
config.assets.debug = false,但这样做会导致xxx.js.coffee文件不会被自动翻译,不利于调试
Webrick会把这些查询显示到console中,而unicorn不会。
调试过程中最方便的写法还是puts @store.inspect
view中则是= debug @store
看如下代码
<td><%= link_to 'Show', news %></td>
<td><%= link_to 'Edit', edit_news_path(news) %></td>
<td><%= link_to 'Destroy', news, :confirm => 'Are you sure?', :method => :delete %></td>
这show和Destroy在页面上看,都是news/id 这样的URL,但一个是显示,一个是删除功能,区别就在method=>delete。这是利用了HTTP Verb。
国际化文件定义在config/locales中 'admin.pages.index.new'的方式调用。
content_for的用法:见
http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for
http://railscasts.com/episodes/8-layouts-and-content-for 这个是表明它可以用在定义某个yield中
content_tag的用法:
content_tag(:p, "Hello world!") # => <p>Hello world!</p>
link_to(...) do
text
end
text就是显示的内容。<a>text</a>
yield的内容是后生成的,只能从controller中获取数据,而不能从其他的render等以及layouts/aplication.html.erb中获取数据。因此可以把需要查的内容全部放到render中实现。或者把查询放到pre_controller中。不用担心重复查询,rails有缓存机制。
汉字以及特殊字符,如果想写在非view的代码中,要通过t()翻译,把相关汉字写到zh.yml中。
数据库相关
rake db:migrate:redo STEP=3会删除表,删除表会自动删除索引和用到的sequence,因此即便pgadmin backup了,restore后只是还原了表数据,sequence还是新的,需要手动更新。
Web Server
rack是一个web server的接口。webrick 是rails自带的server,很小,但是性能非常差,仅供程序员调试。unicorn是rack的一个实现,可以上商用。