【问题标题】:Does simple form works with nested objects?简单形式是否适用于嵌套对象?
【发布时间】:2016-02-17 03:39:35
【问题描述】:

我有两个表单一个显示正确的错误通知,而两个不知道原因t. And I dont。

一个: 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

还有两个:

字符形式:

<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 是否显示嵌套对象的错误通知? (我认为应该)。如果是的话,我的代码有什么问题阻止它们用于第二种形式。

【问题讨论】:

    标签: ruby-on-rails error-handling simple-form


    【解决方案1】:

    问题出在我的控制器和 form_partial 中

    对控制器有帮助的是,改变:

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

    以我的形式:

    &lt;%= simple_form_for [@user, @user.characters.new] do |f| %&gt;

    &lt;%= simple_form_for [@user, @character] do |f| %&gt;

    【讨论】:

      猜你喜欢
      • 2020-08-03
      • 1970-01-01
      • 2017-11-26
      • 2023-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      相关资源
      最近更新 更多