REST将我们的controller限制到7个actions(index/show/new/create/edit/update/desctroy)
这次我们就来看看怎样添加自定义的actions
[code]
class TasksController < ApplicationController
def idnex...
def show...
def new...
def create...
def edit...
def update...
def destroy...
def complete
@task = Task.find(params[:id])
@task.update_attribute :completed_at, Time.now
flash[:notice] = "marked task as complete"
redirect_to completed_tasks_path
end
def completed
@tasks = Task.find(:all, :conditions => 'completed_at IS NOT NULL')
end
end
[/code]
我们创建了两个方法,我们需要修改routes.rb:
[code]
map.resources :tasks, :collection => { :completed => :get }, :member => { :complete => :put}
[/code]
现在我们可以访问http://localhost:3000/tasks;completed了
我们来看看页面中怎样写该链接:
[code]
<%= link_to "Mark as complete", complete_task_path(task), :method => :put %>
<%= link_to "Completed Tasks", completed_tasks_path %>
[/code]
这次我们就来看看怎样添加自定义的actions
[code]
class TasksController < ApplicationController
def idnex...
def show...
def new...
def create...
def edit...
def update...
def destroy...
def complete
@task = Task.find(params[:id])
@task.update_attribute :completed_at, Time.now
flash[:notice] = "marked task as complete"
redirect_to completed_tasks_path
end
def completed
@tasks = Task.find(:all, :conditions => 'completed_at IS NOT NULL')
end
end
[/code]
我们创建了两个方法,我们需要修改routes.rb:
[code]
map.resources :tasks, :collection => { :completed => :get }, :member => { :complete => :put}
[/code]
现在我们可以访问http://localhost:3000/tasks;completed了
我们来看看页面中怎样写该链接:
[code]
<%= link_to "Mark as complete", complete_task_path(task), :method => :put %>
<%= link_to "Completed Tasks", completed_tasks_path %>
[/code]