使用if .present?重定向

时间:2015-03-17 01:03:08

标签: ruby-on-rails validation

我觉得这很简单,但是我把头靠在墙上。我试图告诉我的Rails应用程序,如果存在一个参数(本例中为签名),我想重定向到主页。这是我的代码:

<%= if @pc.signature.present? %><% redirect_to "pages#home" %><%end%>

我一直遇到语法错误。顺便说一下,这是在edit.html.erb文件中。

2 个答案:

答案 0 :(得分:1)

您需要在动作控制器上执行此操作,而不是在视图

中执行此操作
def your_action
  if @pc.signature.present?
    redirect_to 'your_path_or_url' 
  end
end

答案 1 :(得分:1)

也许在你的控制器中你没有定义@pc?另外,使用路径而不是'pages#home'。它看起来应该更像这样:

def edit
  @pc = Pc.find(params[:id]) #or whatever your logic is
  redirect_to root_path if @pc.signature.present?
  # otherwise 'edit' template will be rendered
end