2015-11-16 2 views
0

У меня есть две формы Один показывает правильные уведомления об ошибках и Два doesn t. And I don t знать почему.Работает ли простая форма с вложенными объектами?

One: Announcement_form:

имеет переменную объявление, announcement = @announcement

<%= simple_form_for announcement do |f| %> 

    <%= f.input :title, label: "Nazwa", placeholder: "Tytuł Posta", error: "Proszę podać tytuł" %> 
    <%= f.input :message, label: "Treść", placeholder: "Treść Posta", error: "Post musi posiadać treść", as: :text, input_html: { 'rows' => 12 } %> 
    <%= f.submit "Dodaj Newsa ;)", class: 'btn btn-primary' %> 
<% end %> 

с действием контроллера:

def create 
    @announcement = Announcement.new(announcement_params) 
    if @announcement.save 
     flash[:success] = "Post został pomyślnie dodany" 
     redirect_to root_path 
    else 
     render :new 
    end 
    end 

И Два:

Characteer форма:

<article class="character_form "> 
    <%= simple_form_for [@user, @user.characters.new] do |f| %> 

    <%= f.input :name, label: "Imię", placeholder: "Imię postaci", error: "Proszę podać imię postaci" %> 
    <%= f.input :clan, collection: CLAN_NAMES_ARRAY, label: "Klan:", include_blank: false %> 
    <%= f.input :family, label: "Rodzina:", include_blank: false %> 
    <%= f.input :desc, label: "Opis Postaci:", placeholder: "Opisz swoją postać...", error: "Postać musi posiadać opis" %> 
    <%= f.submit "Zapisz", class: "btn btn-primary" %> 

    <% end %> 
</article> 

С действием:

def create 
    @user = User.find(params[:user_id]) 
    @character = @user.characters.new(character_params) 

    if @character.save 
     redirect_to current_user 
    else 
     render :new 
    end 
    end 

Оба довольно стандартный материал, проблема, которую я столкнулся, является то, что в первом примере, simple_form возвращает хорошие уведомления проверки, а во втором формы это не так. Единственное различие, которое я вижу между этими двумя формами, состоит в том, что символьный объект является вложенным объектом (@ user.character), а объявление - нет. У меня есть валидация присутствия для обеих моделей.

Мой вопрос:

simple_form показывает ли error_notifications для вложенных obejcts? (Я думаю, это должно). Если да, то что не так с моим кодом, который предотвращает их для второй формы.

ответ

0

Проблема была в обоих в моем контроллере и form_partial

Что помогло в контроллере было, изменение:

@character = @user.characters.new к @character = Character.new

и в моей форме:

<%= simple_form_for [@user, @user.characters.new] do |f| %>

до

<%= simple_form_for [@user, @character] do |f| %>

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