forked from xdite/rails-101
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchapter-01-1-6.txt
42 lines (27 loc) · 1.06 KB
/
chapter-01-1-6.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{::pagebreak :/}
## Ch 1.1.6 建立 Groups Controller 裡的 update
在 `app/controllers/groups_controller.rb` 加入 `update` 這個 action
~~~~~~~~
def update
@group = Group.find(params[:id])
if @group.update(group_params)
redirect_to group_path(@group)
else
render :edit
end
end
~~~~~~~~
### 解說
這邊也要翻回 app/views/posts/edit.html.erb 這個 view 一起來看。
~~~~~~~~
<div class="span12">
<%= simple_form_for @group do |f| %>
<%= f.input :title, :input_html => { :class => "input-xxlarge"} %>
<%= f.input :description, :input_html => { :class => "input-xxlarge"} %>
<div class="form-actions">
<%= f.submit "Submit", :disable_with => 'Submiting...', :class => "btn btn-primary" %>
</div>
<% end %>
</div>
~~~~~~~~
在 RESTful Rails 的寫法中,對 `group_path` 丟 PUT 就是對應到 update 的動作。form 會背包成一個 hash,如果 @group 能夠吃進 params[:group] 進行更新且成功儲存,就會「重導」到 show action,失敗則「退回」到 edit action。