作者poopoo888888 (阿川)
看板Ruby
標題[問題] 關於scaffold的問題
時間Sat Oct 23 15:27:37 2010
環境:
e.g. Ruby 1.8.6 Rails 2.0.2
狀況:
我用ruby script/generate scaffold user name:string 創了一個紀錄名字的系統
對於它的MVC運作方式有點想不通 想請教大家
打開server之後 在首頁點選New user 填入姓名之後點選Create會顯示這樣的畫面
User was successfully created.
Name: Kevin
Edit | Back
回頭看它的controller 發現有這樣一段
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
flash[:notice] = 'User was successfully created.'
format.html { redirect_to(@user) }
format.xml { render :xml => @user, :status => :created, :location =>
@user }
else
format.html { render :action => "new" }
format.xml { render :xml => @user.errors, :status =>
:unprocessable_entity }
end
end
end
根據畫面顯示的'User was successfully created.'
我想就是跟create這個action有關吧
接著回頭看的view的部分(new.html.erb)
<h1>New user</h1>
<%= error_messages_for :user %>
<% form_for(@user) do |f| %>
<p>
<b>Name</b><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.submit "Create" %>
</p>
<% end %>
<%= link_to 'Back', users_path %>
內容只是對@user填入資料 接著submit出去
而controller內關於new的部分是
def new
@user = User.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @user }
end
end
請問是哪一部分決定了 接收到view所submit出來資料之後的動作?
思考了很久都不知道為什麼會進入create這個action
在controller或是view裡面都沒出現"create"這個字不是嗎?(那個按鈕名稱除外)
想請教各位大大 謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.7.59
1F:→ ihower:config/route.rb 裡的 resources :users 決定的 10/23 15:32
3F:→ poopoo888888:好的 我馬上來研究一下 10/23 15:52
4F:→ poopoo888888:謝謝 10/23 15:52
5F:推 eric78929:good認真哥! 10/23 21:46
6F:推 hellolucky:form_for(@user) 看一下產生出來form的html原始碼 10/23 23:12
7F:推 hellolucky:再搭配ihower的網址中的RESTful表格 10/23 23:16
8F:→ poopoo888888:好 10/23 23:31
9F:→ poopoo888888:謝謝 10/23 23:31
10F:→ lhyang:Ruby版感覺似乎和諧多了~ XD 10/28 01:32
11F:→ godfat:以前不和諧嗎? 10/28 20:25