Ruby on rails 使用创建新记录已经有很多次了

Ruby on rails 使用创建新记录已经有很多次了,ruby-on-rails,ruby-on-rails-4,has-many-through,has-many,Ruby On Rails,Ruby On Rails 4,Has Many Through,Has Many,我试图创建一个简单的表单来创建特定商品的估价报价。估价可能有许多部分是使用选择表格选择的。我正在使用下面列出的类。我还创建了连接表估价行来存储估价。 使用表单时没有错误,但缺少记录。。。 不幸的是,我陷入了困境,不知道如何正确地创建表单来保存估价行表中的记录 我将非常感谢在这个问题上的任何帮助!由于我是rails的新手,我在这方面被困了两天,不知道如何克服这一点 class Valuation < ActiveRecord::Base has_many :valuation_lin

我试图创建一个简单的表单来创建特定商品的估价报价。估价可能有许多部分是使用选择表格选择的。我正在使用下面列出的类。我还创建了连接表估价行来存储估价。 使用表单时没有错误,但缺少记录。。。 不幸的是,我陷入了困境,不知道如何正确地创建表单来保存估价行表中的记录

我将非常感谢在这个问题上的任何帮助!由于我是rails的新手,我在这方面被困了两天,不知道如何克服这一点

class Valuation < ActiveRecord::Base
    has_many :valuation_lines
    has_many :parts, :through => :valuation_lines
    accepts_nested_attributes_for :parts
end

class ValuationLine < ActiveRecord::Base
    belongs_to :part
    belongs_to :valuation
end

class Part < ActiveRecord::Base
    has_many :valuation_lines
    has_many :valuations, :through => :valuation_lines
end
估价控制员:

 # GET /valuations/new
  def new
    @valuation = Valuation.new
  end

   # POST /valuations
  # POST /valuations.json
  def create
    @valuation = Valuation.new(valuation_params)

    respond_to do |format|
      if @valuation.save
        format.html { redirect_to @valuation, notice: 'Valuation was successfully created.' }
        format.json { render action: 'show', status: :created, location: @valuation }
      else
        format.html { render action: 'new' }
        format.json { render json: @valuation.errors, status: :unprocessable_entity }
      end
    end
  end

你的f.fields_:估值看起来不正确。你已经有表格了_for@valuation. 我希望,在这里面,您将有一个f.fields\u for:part,在其中您将允许使用part属性。在模型评估中,您还需要接受零件的嵌套属性。如果你在rails嵌套表单上进行谷歌搜索,你会发现一些很好的信息。嗨,谢谢你的回复。我已经应用了您的输入,但仍然不起作用…:还有其他提示吗?如果您已经更改了代码,那么您可能需要更新您的问题,因为我不知道您到底做了什么。您可能还希望显示Valuationcreate和Valuationnew控制器方法。如果有些东西不起作用,请确保您清楚地指出错误消息的含义是什么?没有结果?错误的结果?等等,我刚刚根据你的建议更新了问题中的代码。不工作意味着没有结果,即它创建新的估价,但不在估价行中创建新记录,也不显示任何错误。更清楚地说,我把这个放在上面了,我看不出你在为你的观点所涉及的估价创造一个部分。您的视图将显示可用零件的集合(如果有)。如果没有,则将不显示。当您点击submit时,不会创建新的,因为没有代码可以创建新的。你应该试试我提到的谷歌搜索建议。有一些关于嵌套表单的好信息。特别是,请登录railscasts.com。
 create_table "valuation_lines", force: true do |t|
        t.integer "valuation_id"
        t.integer "part_id"
        t.integer "pruchase_price"
      end
 # GET /valuations/new
  def new
    @valuation = Valuation.new
  end

   # POST /valuations
  # POST /valuations.json
  def create
    @valuation = Valuation.new(valuation_params)

    respond_to do |format|
      if @valuation.save
        format.html { redirect_to @valuation, notice: 'Valuation was successfully created.' }
        format.json { render action: 'show', status: :created, location: @valuation }
      else
        format.html { render action: 'new' }
        format.json { render json: @valuation.errors, status: :unprocessable_entity }
      end
    end
  end