2015-03-17 5 views
0

Я чувствую, что это просто, но я ударяю головой о стену. Я пытаюсь сказать моему Rails-приложению, что если присутствует один параметр (подпись в этом примере), которую я хочу перенаправить домой. Вот мой код:Использование, если .present? redirect

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

Я продолжаю работать с ошибкой синтаксиса. Кстати, это в файле edit.html.erb.

+2

Вы не можете перенаправить в виде. Перенаправление выполняется на уровне контроллера. Кроме того, это помогает, когда вы сообщаете, что получаете сообщение об ошибке, чтобы опубликовать полную ошибку. – sevenseacat

ответ

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 
+0

Работал отлично - вы правы, я пренебрег определением @pc. Модифицировал это и заменил путь, и он работал отлично. – PSCampbell

1

Вы должны сделать это на своем контроллере действия, а не с точки зрения

def your_action 
    if @pc.signature.present? 
    redirect_to 'your_path_or_url' 
    end 
end 
+0

Это тоже не работало для меня! 'class PcsController PSCampbell

+0

@PSCampbell Вы не сообщаете нам, почему он не работает, поэтому мы не можем вам помочь. – sevenseacat

+0

'pages # home' не является подлинным url в контроллере (только в маршрутизации), возможно, вы хотите что-то вроде' pages_path (: page =>: home) '? –

Смежные вопросы