移動進行評估,以一個幫助我有以下的評價偉大的工程:在Rails3中
在我的列表/ detail.html.erb視圖
<% if user_signed_in? && current_user.id == @listing.user_id %>
我在視圖使用這幾次這樣我想讓這個輔助方法。
我可以把什麼樣的代碼在我的listings_helper文件,以便我可以調用這樣的事情在我看來不是:
<% if isListingOwner? %>
任何幫助,將不勝感激。謝謝。
移動進行評估,以一個幫助我有以下的評價偉大的工程:在Rails3中
在我的列表/ detail.html.erb視圖
<% if user_signed_in? && current_user.id == @listing.user_id %>
我在視圖使用這幾次這樣我想讓這個輔助方法。
我可以把什麼樣的代碼在我的listings_helper文件,以便我可以調用這樣的事情在我看來不是:
<% if isListingOwner? %>
任何幫助,將不勝感激。謝謝。
當我需要做這樣的事情時,我使用康康。然後你可以寫這樣的東西:
<% if can?(:update, @listing) %>
Listing
<% end %>
在我看來更乾淨。
如果你在你的Listing
模型belongs_to :user
,你爲什麼不乾脆做
if current_user == @listing.user
我假設你正在使用或設計的東西,從CURRENT_USER返回nil當用戶沒有簽名英寸
將它放到/app/helpers
文件夾中。
Railscast對這個話題 http://railscasts.com/episodes/64-custom-helper-modules
所有好的建議前奏教程,但你需要添加到您的listings_helper.rb代碼
def isListingOwner?
user_signed_in? && current_user.id == @listing.user_id
end
就個人而言,我寧願把那張支票模型:
class Listing
def owned_by?(user)
user.id == self.user_id
end
end
在你看來
然後,你可以這樣寫:
<% if @listing.owned_by(current_user) %>
如果您正在做很多這種類型的事情,您可能需要查看基於角色的授權插件。