續上一節。
我們在頁面中加上如下**來限制public訪問:
[code]
<% if admin? %>
<%= link_to 'new episode', new_episode_path %>
<% end %>
[/code]
顯然,只有admin才能新建episode
我們來實現admin?方法
admin?在我們的頁面中使用,它是乙個helper方法,但是我們希望在controller裡也可以使用:
[code]
helper_method :admin?
protected
def admin?
false
end[/code]
好了,現在頁面不會顯示new episode的鏈結了,但是我們通過url仍然可以訪問new_episode_path
所以,我們還需要乙個filter來做controller層的限制訪問:
[code]
protected
def authorize
unless admin?
flash[:error] = "unauthorized access"
redirec_to home_path
false
endend
# episodes_controller.rb
before_filter :authorize, :except => :index
[/code]
ok,下一式我們將實現admin?方法
第二十章 限制
城城內西部某個庭院井底,滕青山正在這。趙丹塵,你想抓我,再回去練上五十年吧。喊了一嗓子後,滕青山又立即鑽進泥土中,繼續前進。泥土中,滕青山現在也不急,不過,此刻滕青山體表的 子彈型光罩 已經沒有螺旋了。通過先天真元,改變身體形狀!看來不是我想象的那樣。滕青山很清楚,先天真元光罩如果單單維持,消耗先天...
Rails寶典之第七式 layout詳解
一般來說layout有如下五種 gobal layout,controller layout,shared layout,dynamic layout,action layout 假設我們有乙個views projects index.rhtml頁面 code code 下面來看看各種layout的...
第二十三課 Celery非同步分布式
一 什麼是celery celery是乙個python開發的非同步分布式任務排程模組。celery本身並不提供訊息服務,使用第三方服務,也就是borker來傳遞任務,目前支援rebbimq,redis,資料庫等。這裡我們使用redis 連線url的格式為 redis password hostnam...