Ruby on rails 如何在Rails中检查URL或路径?
我有一个Rails应用程序,其中有一个带有表单的Ruby on rails 如何在Rails中检查URL或路径?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个Rails应用程序,其中有一个带有表单的show操作。此show操作使用一个视图来检查用户类型是否=“admin”,并相应地显示部分内容。对于此show视图,只有当user_type=admin可以访问它时,才能使用 提交表单后,它会在同一控制器中触发另一个操作(store)。我遇到的问题是,当提交出现错误时,store在不引用用户的情况下呈现show,因此部分不会出现,因为用户类型不等于admin(因为它找不到用户)。但是,由于对“show”的访问是受保护的,我想知道是否有办法检查ur
show
操作。此show
操作使用一个视图来检查用户类型是否=“admin”
,并相应地显示部分内容。对于此show
视图,只有当user_type=admin可以访问它时,才能使用
提交表单后,它会在同一控制器中触发另一个操作(store
)。我遇到的问题是,当提交出现错误时,store
在不引用用户的情况下呈现show
,因此部分不会出现,因为用户类型不等于admin(因为它找不到用户)。但是,由于对“show”的访问是受保护的,我想知道是否有办法检查url
例如:
表格载于:
http://foo.com/bars/4/users/3
但是,如果失败,呈现url将变为:
http://foo.com/bars/4/users/store
show.html.erb视图包含以下内容:
<%= form_for([:bar,@user], :url => store_bar_users_path(params[:bar_id]), :html => {:name=>"users_form",:multipart => true,:class=> "standardForm"}) do |user| %>
<%= render :partial => "users/admin_options" if @user.user_type == "admin" %>
所以我想知道的是,我是否可以在中更改条件:
<%= render :partial => "users/admin_options" if @user.user_type == "admin" %>
“用户/管理员选项”如果@user.user\u type==“管理员”%>
以某种方式还检查store\u bar\u users\u path
的url,或类似的内容,或者store
操作中的渲染不正确。将用户类型存储在会话变量中,在用户登录时设置。这样,您就不必一直加载它,而且它对所有控制器、视图和助手都是可见的。使用此变量可确定是否要显示分部
<%= render :partial => "users/admin_options" if @user.user_type == "admin" %>