剛開始接觸rails,做活動通的專案,遇到的問題很多,大概遇到問題我會看書或者上網查閱相關資料,如果能直接通過這些方式直接得到答案,那當然最好,有的問題卻不只單單通過查資料而直接得到答案的,需要自己學習、模仿、總結、理解後,才能解決。這裡,我就說說我遇到的rails下的link_to和路由配置問題。
首先是link_to,問題是這樣的,管理員在伺服器端登入活動通後,進入使用者管理頁面,頁面已列表的形式顯示出所有的使用者,管理員可以修改任意的某一使用者的資訊,後者刪除某一使用者。如果link_to只是單純跳頁面的話,只用:
=link_to 'name', 'url'
但是,這樣並沒有傳遞任何的引數,換句話說,點了link_to並不知道,你所要刪除或修改的是哪乙個使用者。
解決的辦法是,刪除:
=link_to '刪除',u, :method=>:delete,data:
這樣使用了rails內建的delete方法,但同時要配置路由:
match 'user/delete/:id' =>'user#destroy',:via=>:delete,:as =>'user'
這時,一點link_to就把url裡寫的:id,即使用者id傳過去了。自定義乙個destroy方法,在destroy方法裡面利用傳過來的使用者id,呼叫方法是 params[:id] 再刪除相應的使用者就可以了。
修改的話就類似了,首先要配置路由:
get 'user/show/:id/admin_modify_password_page' => 'admin#admin_modify_password_page',:as=>admin
頁面上:
=link_to '修改密碼', admin_url(id:u.id)
這樣就把相應要修改的使用者id作為params傳遞給下乙個頁面或方法了。
最後總結link_to用法有:
link_to 'name', 'url'
link_to 'name', user_url(id:id)
rails內建方法如delete等 link_to 'name', user(id),:method=>:delete, :data=>
link_to 'name' , user_path(:id=>id)
link_to 'name' , :style=>'style' , :class=> 'class'
如果不同的controlller link_to 'name' ,:controller=>'admin',:action=>'index',:param=>value
後來上網查了一些英文的官方文件,link_to還有 link_to_if、link_to_unless、link_to_unless_current,這些可以控制如當前使用者是退出、未登入狀態不能操作,或者在index頁面顯示information鏈結,在information頁面顯示index的鏈結,非常方便。
Rails下Redis的使用
redis是乙個開源的,非常先進的鍵值儲存系統,優點 快 支援多種結構 strings,hashes,lists,sets and sorted sets.一 安裝編譯以及執行 curl o tar xzf redis 2.0.4.tar.gz cd redis 2.0.4 make 2.執行服務 ...
Ubuntu下Rails環境的配置
ubuntu下的rails開發,首先要配置無線網路。安裝ruby和rails程式。但是在不用的應用下可能需要不同的ruby和rails版本,本文通過rvm來解決對ruby,rails版本的管理。ubuntu環境配置 無線網路的配置 3 在系統 系統管理 windows無線驅動程式,選擇安裝新的無線驅...
Rails下的Web Service開發簡介
b 建立 b 先用generator 來建立service 引數為 generator web service serviceone method a method b 注意 因為ruby完全動態,所以無法根據方法介面來自動生成webservice,所以搞了乙個 api.rb來幹這個事情,注意 ra...