-2

Я хочу, чтобы добавить класс контроллера, чтобы изменить цвет сообщения, которое появляется в уведомлении, если функцияКак добавить класс в контроллер

Это мой контроллер

def send_password 
    @user=User.find_by_email(params[:user][:email]) 
    if @user.present? 
     @user.send_reset_password_instructions 
     flash[:notice] = "Reset password instructions have been sent to #{@user.email}." 
     redirect_to reset_password_path, notice: "Reset password instructions have been sent to #{@user.email}." 
    else 
     return redirect_to reset_password_path, notice: "User is not available." 
    end 
    end 
end 

Пожалуйста, помогите.

Я пробовал и в форме, как это, но он не работает.

<%= simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: {method: :post}) do |f| %> 
    <% if f.error_notification == 'User is not available' %> 
     <h1 class='reset-error-message'><%= f.error_notification %></h1> 
    <% else %> 
     <h1 class='reset-success-message'><%= f.error_notification %></h1> 
    <% end %>` 

Затем контроллер я попробовал, как это, который также не работает

if @user.present? 
    @user.send_reset_password_instructions 
    flash[:notice] = "Reset password instructions have been sent to #{@user.email}." 
    redirect_to reset_password_path, notice: "Reset password instructions have been sent to #{@user.email}.",class:"reset-success-message" 
else 
    return redirect_to reset_password_path, notice: "User is not available., class:"reset-error-message" 
end 
+0

Пожалуйста, покажите нам, что вы уже пробовали. – mudasobwa

ответ

0

Вы лучше использовать различные классы флэш-сообщений для различных уведомлений:

# Use flash *notice* 
redirect_to reset_password_path, notice: "Reset password instructions have been sent to #{@user.email}." 

# Use flash *alert* (error) 
return redirect_to reset_password_path, alert: "User is not available." 

В макете или представления, теперь вы можете отображать каждую вспышку со своим собственным классом CSS:

<% flash.each do |name, msg| -%> 
    <%= content_tag :div, msg, class: name %> 
<% end -%> 
+0

Что такое 'name'? flash.each do | name, msg | – SreRoR

+0

'name' - это тип вспышки, а также имя класса CSS (уведомление или предупреждение), которое будет использоваться. – zwippie

+0

как я буду добавлять свое имя класса здесь? Я хочу добавить 'reset_error_message' как имя класса при неудаче и 'reset_success_message' как имя класса при успешном завершении – SreRoR

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