我对如何在视图和控制器中使用Devise的current_user帮助程序感到困惑。我是否需要进行迁移以在数据库表中添加user_id?我需要对会话控制器执行某些操作吗?
这是我的路线文件:
devise_for :users
resources :groups, shallow: true do
resources :ideas do
resources :comments
end
end
登录/注册等工作正常。我想允许用户仅编辑他们创建的想法和评论。
我是否需要在应用程序控制器中添加一个辅助方法,例如:
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
那么,从理论上讲,我应该能够做到以下几点?
<% if current_user %>
<%= link_to 'Edit', edit_idea_path(@idea) %>
<% end %>
然后我还需要用current_user更新控制器编辑操作?例如?
@comment = current_user.comment.find(params[:id])
我认为您正在尝试做的是:
<% if current_user.id == @idea.user.id %>
<%= link_to 'Edit', edit_idea_path(@idea) %>
<% end %>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句