Rails寶典之第二十式 限制訪問

2021-08-29 08:49:43 字數 794 閱讀 7457

續上一節。

我們在頁面中加上如下**來限制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...