【问题标题】:Have stack with: fields for and nested attributes有堆栈:字段和嵌套属性
【发布时间】:2014-09-14 14:20:03
【问题描述】:

使用接受嵌套属性 + form_for 构建一些简单的项目和堆栈。

现在我的代码没有问题,所有的工作和保存,但是当我取消注释时,accepted_nested_attributes_fori 有错误或我的模型没有创建(我在过去 5 天尝试不同的变体,但无法正确构建这个..)。我认为我的控制器有问题。我的代码(没有接受的嵌套属性)。 型号:

class Project < ActiveRecord::Base  
  belongs_to :user
  has_one :j_project
  has_one :p_project

#  accepts_nested_attributes_for :p_project, :j_project

  validates :user_id, :title, presence: true
end

查看:

= form_for(@project) do |f|
  = f.label :title
  = f.text_field :title
  = fields_for @p_project do |fa|
    = fa.label :requester
    = fa.text_field :requester
  = fields_for @j_project do |ffa|
    = ffa.label :j_login
    = ffa.text_field :j_login
    = ffa.label :j_password
    = ffa.text_field :j_password
  = f.submit "Save", class: "btn btn-large btn-primary"

控制器:

class ProjectsController < ApplicationController

  def new
    @project = Project.new
    @p_project = @project.build_p_project
    @j_project = @project.build_j_project
  end

  def create
    @project = Project.new(project_params)
    @project.user = current_user
    @p_project = @project.build_p_project(p_project_params)
    @j_project = @project.build_j_project(j_project_params)
    if @project.save && @p_project.save && @j_project.save
      flash[:success] = "New project was added successfully"
      redirect_to user_root_path
    else
      render 'new'
    end
  end

  private
    def project_params
      params.require(:project).permit(:title)
    end

    def p_project_params
      params.require(:p_project).permit(:requester)
    end

    def j_project_params
      params.require(:j_project).permit(:j_login, :j_password)
    end
end

【问题讨论】:

    标签: ruby nested-attributes form-for


    【解决方案1】:

    问题在于验证: j_project 和 p_project 中的 project_id - 当我将它们删除时,一切正常。 我也使用来自互联网的指南编辑了我的 simple_form 和控制器......但是我在谷歌中找不到的问题是验证。

    【讨论】:

      猜你喜欢
      • 2018-09-03
      • 2020-09-30
      • 2015-04-07
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 2019-02-27
      • 1970-01-01
      • 2017-11-25
      相关资源
      最近更新 更多