作者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