参考我前面的博客:
(1)更新记录的视图
?我原来写的(不成熟):
<div>编辑</div>
<%= link_to "列表", {:action => ‘list‘} %>
<div>
<%= form_for :article, method: "PUT", url: {action: "update"} do |f| %>
<ul>
<li>
<label for="">title:</label>
<input type="text" name="article[title]" value="<%= @article.title %>">
</li>
<li>
<label for="">text:</label>
<input type="text" name="article[text]" value="<%= @article.text %>">
</li>
<li>
<%= f.submit %>
</li>
</ul>
<input type="hidden" name="id" value="<%= @article.id %>">
<% end %>
</div>
?
最佳实践:
<div>编辑</div>
<%= link_to "列表", {:action => ‘list‘} %>
<div>
<%= form_for @article, method: "PUT" do |f| %>
<ul>
<li>
<label for="">title:</label>
<%= f.text_field :title%>
</li>
<li>
<label for="">text:</label>
<%= f.text_field :text%>
</li>
<li>
<%= f.submit %>
</li>
</ul>
<% end %>
</div>
?特点:
(a)没有手动指定表单提交的action;
(b)没有显式地给文本框赋值
(c)省略id的隐藏域
(2)创建控制器
?bin/rails generate controller pass
? ? ? create ?app/controllers/pass_controller.rb
? ? ? invoke ?erb
? ? ? create ? ?app/views/pass
? ? ? invoke ?rspec
? ? ? create ? ?spec/controllers/pass_controller_spec.rb
? ? ? invoke ?helper
? ? ? create ? ?app/helpers/pass_helper.rb
? ? ? invoke ? ?rspec
? ? ? create ? ? ?spec/helpers/pass_helper_spec.rb
? ? ? invoke ?assets
? ? ? invoke ? ?coffee
? ? ? create ? ? ?app/assets/javascripts/pass.coffee
? ? ? invoke ? ?scss
? ? ? create ? ? ?app/assets/stylesheets/pass.scss
(3)查看路由
?bin/rake routes
??????Prefix Verb?? URI Pattern????????????????? Controller#Action
????articles GET??? /articles(.:format)????????? articles#index
?????????????POST?? /articles(.:format)????????? articles#create
?new_article GET??? /articles/new(.:format)????? articles#new
edit_article GET??? /articles/:id/edit(.:format) articles#edit?????article GET??? /articles/:id(.:format)????? articles#show
?????????????PATCH? /articles/:id(.:format)????? articles#update
?????????????PUT??? /articles/:id(.:format)????? articles#update
?????????????DELETE /articles/:id(.:format)????? articles#destroy
????????root GET??? /??????????????????????????? welcome#index
(4)创建实体类:
bin/rails generate model Pass title:string username:string ?pwd:string description:text status:tinyint
? ? ? invoke ?active_record
? ? ? create ? ?db/migrate/20160403064342_create_passes.rb
? ? ? create ? ?app/models/pass.rb
? ? ? invoke ? ?rspec
? ? ? create ? ? ?spec/models/pass_spec.rb
? ? ? invoke ? ? ?factory_girl
? ? ? create ? ? ? ?spec/factories/passes.rb
注意:列与列之间以空格分隔
?因为ruby on rails 是高度的约定优于配置,所以一些细节被隐藏了,比如你看不到form的action属性
原文:http://hw1287789687.iteye.com/blog/2288276