Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Rails中检查URL或路径?_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 如何在Rails中检查URL或路径?

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

我有一个Rails应用程序,其中有一个带有表单的
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" %>