[问题] CRUD基本问题

楼主: atomuu (小原子)   2013-06-22 13:54:59
环境:
Rails 3.2.13
状况:
我是RoR新手
我在看ihower大大的http://ihower.tw/rails3/basic.html
我就新增资料的部分有以下若干问题
0.他在实作CRUD程式的时候改config/routes.rb
开启match ':controller(/:action(/:id(.:format)))'
Q:请问这边的id,是指Rails自己维护的serial number primary key吗?
1.新增资料的时候是app/controllers/events_controller.rb
def new
@event = Event.new
end
2.秀出新增资料的表格app/views/events/new.html.erb
<%= form_for @event, :url => { :controller => 'events', :action => 'create' }
do |f| %>
<%= f.label :name, "Name" %>
<%= f.text_field :name %>
<%= f.label :description, "Description" %>
<%= f.text_area :description %>
<%= f.submit "Create" %>
<% end %>
Q:f.label的第一个参数:name是做什么的呢?我看了官方文件
http://tinyurl.com/2d7phyl
也搞不懂这个的用处,我想说label应该只需要显示的字串这个参数就够了
怎么会跑出for这个HTML属性呢?
3.表格的资料用app/controllers/events_controller.rb新增到数据库
def create
@event = Event.new(params[:event])
@event.save
redirect_to :action => :index
end
Q:new页面的表格内容是透过:event这个物件带到create页面的吗?
如果是的话,在哪边定义传进来的参数叫:event呢?
好像RoR很多convention...学习起来不轻松啊!
附录:
http://ihower.tw/rails3/basic.html
作者: tcling (tcling)   2013-06-22 16:58:00
觉得你下个标题比较好,我也在学Rails,一起加油。Q2:f.label是做出<label>tag,<label>可以让你鼠标点一下标签文字,就可以跑到对应的textfield,去撰写文字,所以需要指名哪个textfield。
楼主: atomuu (小原子)   2013-06-23 12:39:00
谢谢你的解释!

Links booklink

Contact Us: admin [ a t ] ucptt.com