2016-03-22 1 views
0

Я пытаюсь сделать приложение в Rails 4 и использовать Statesman для состояний.Rails 4 - Stateman Gem-метод для определения текущего состояния

В моей модели проекта я хочу отобразить: current_state объекта. Однако я не хочу, чтобы имя атрибута отображалось. Вместо этого я хочу написать дружественное человеку состояние, которое может отображаться, если объект находится в соответствующем состоянии.

Например, я определил состояние: request_approval.

В моих проектах показать страницу, я могу написать:

<%= @project.current_state %> 

и выход request_approval.

Как я могу написать что-то, что говорит, если проект находится в current_state: request_approval, render: Ожидает ответа на ваш запрос для утверждения? Могу ли я сделать какой-то метод в моей модели для этого?

+0

Создайте метод 'helper' вместо этого, поскольку вам это нужно только в представлении. И вы можете использовать 'switch case' внутри может быть – Deep

+0

Hi Deep, как бы я это сделал? – Mel

ответ

0

В вашей projects_helper вы можете написать метод:

def text_for_state(state) 
    case state 
    when 'request_approval' 
    'Awaiting Response' 
    when 'something_else' 
    'Then Something Else' 
    end 
end 

А на ваш взгляд, просто написать:

<%= text_for_state(@project.current_state) %> 

Это вариант может быть лучшие решения, чтобы сделать это.

+0

Это не работает. Я просто рисую пустой, где он должен показывать текст. – Mel

+0

Он отлично работает, когда я пишу (current_state) вместо состояния. Огромное спасибо – Mel

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