rails项目学习

Rails路由学习

<%= link_to 'hello', {:controller => 'welcome', :action => 'say'} %>
会产生以下的链接(其他URL参数也可以在这穿,从第三个参数起,传递的都是a标签的属性)
hello

match '/:controller/:action/:id.:format'

:id会转为params[:id]传到controller中去

.format让路由接受.json、.xml等形式,并且转成params[:format]参数

写作:
match '/meetings/:id' => 'events#show'
代表指向events controller的show方法

命名路由

match '/meetings' => 'events#index', :as=>"meetings"

自动生成meetings_path和meeting_url的Helper

设置首页
root :to => 'welcome#show'
记得要删除public/index.html这个文件

get 'account/overview' => 'account#overview'

限定条件

限定id为整数

match "events/show/:id" => "events#show", :constraints => {:id => /\d/}

限制ip

constrains(:ip=>/(127.0.0.1$)|(192.168.[0-9]{1,3}.[0-9]{1,3})$/) do
match '/events/show/:id' => "events#show"
end

Restful路由
resources :events do
resources :tasks, :people
end

自定义群集路由
resources :products do
collection do

products_controller.rb有个sold和on_offer方法

get :sold
post :on_offer

end
end

Namespace 使用

controller文件夹下有一个文件夹admin

namespace :admin do

admin文件夹下有个文件projects_controller.rb文件

resources :projects
end

URL_Helper变为admin_projects_path

admin/projects/


###Request使用
在controller中直接使用

request.action_name
request.cookies
request.headers
request.params
request.xhr? #是不是Ajax请求
request.host_with_port
request.remote_ip
request.headers
request.session

你可能感兴趣的:(rails项目学习)