Mel*_*lon 7 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
我正在开发一个Rails v2.3.2应用程序.
我有一个控制器:
class SchoolController < ApplicationController
...
def edit
@school=School.find_by_id params[:id]
end
def check_teachers
@teachers = @school.teachers
...
end
end
Run Code Online (Sandbox Code Playgroud)
在app/views/schools/edit.html.erb我想有一个link,点击它会触发check_teachers该方法控制器,如何定义路径为这个link?
app/views/schools/edit.html.erb:
link_to 'Check teachers' WHAT_IS_THE_PATH_HERE
Run Code Online (Sandbox Code Playgroud)
rub*_*nce 24
link_to 'Check teachers', :action => :check_teachers, :id => @school.id
Run Code Online (Sandbox Code Playgroud)
要么
link_to 'Check teachers', "/school/check_teachers/#{@school.id}"
Run Code Online (Sandbox Code Playgroud)
或者您可以config/routes.rb像这样定义命名路由:
map.check_teachers, '/school/check_teachers/:id' :controller => :school, :action => :check_teachers
Run Code Online (Sandbox Code Playgroud)
并调用named-route生成的url-helper,如下所示:
link_to 'Check teachers', check_teachers_path(:id => @school.id)
Run Code Online (Sandbox Code Playgroud)
并且您可以使用此ID在控制器中查找教师
def check_teachers
@school = School.find params[:id]
@teachers = @school.teachers
...
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34096 次 |
| 最近记录: |