gpt4 book ai didi

ruby-on-rails - 助手 “fields_for”无法正常工作

转载 作者:行者123 更新时间:2023-12-04 13:29:06 24 4
gpt4 key购买 nike

我使用的是嵌套属性,但 View 中未加载字段。
有人知道我想念什么吗?

Rails 3.1,Ruby 1.9.2

模型1:

class Traditions::Material < ActiveRecord::Base
has_one :material_asset, :dependent => :destroy
validates_presence_of :title
accepts_nested_attributes_for :material_asset
end

模型2:
class Traditions::MaterialAsset < ActiveRecord::Base
belongs_to :material
has_attached_file :asset
validates_attachment_presence :asset
end

查看(HAML):
= form_for @material, :html => {:class => 'form', :multipart => true} do |f|
= errors_for @material

.field
= f.label :title
= f.text_field :title

.field
= f.label :description
= f.text_area :description, :rows => 5

.field
= f.fields_for :material_asset do |ma|
= ma.label :asset
= ma.file_field :asset

.buttonrow
= f.submit 'Save'

结果HTML(部分):
<div class='field'></div>
<div class='buttonrow'>
<input name="commit" type="submit" value="Save" />
</div>

在上面, div.field为空。

最佳答案

我从您的rails issue偶然发现了这一点,它似乎没有在new操作中构建嵌套资源。

您要在 Controller 中调用build_material_asset吗?那可以解释为什么没有渲染字段。如果嵌套对象是nil,则没有要呈现其字段的对象。

尝试这样的事情:

class MaterialsController < ApplicationController
def new
@material = Traditions::Material.new
@material.build_material_asset
end
end

关于ruby-on-rails - 助手 “fields_for”无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6086120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com