我有一个 Rails 应用程序,其中有一个show
带有表单的操作。此show
操作使用相应检查if user_type == "admin"
和显示部分的视图。对于这个show
视图,只能if user_type = admin
访问它。
提交表单后,它会触发同一控制器 ( store
) 中的另一个操作。我遇到的问题是,当提交出现错误时,会在不参考用户的情况下store
呈现show
,因此部分不会出现,因为 user_type 不等于 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" %>
在store
控制器的动作中:
if !@user.save
render :action => "show" ,:layout => 'application'
else
所以我想知道是否可以更改条件:
<%= render :partial => "users/admin_options" if @user.user_type == "admin" %>
还要以某种方式检查 urlstore_bar_users_path
或类似的东西 - 或者store
操作中的渲染可能不正确。