[問題] 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