- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个创建产品页面,允许用户向产品添加多个图像。所以自然而然地我有许多图像上传字段,但是,当创建产品时,它只会拍摄一张照片并将其添加到数据库中。不是其他人。我犯了一些简单的错误,但我不知道它是什么。
感谢您的帮助!
新产品形式 (haml)
%h1
create item
= form_for @product,:url => products_path, :html => { :multipart => true } do |f|
%p
= f.label :name
= f.text_field :name
%p
= f.label :description
= f.text_field :description
%p
= fields_for :photo, :html => {:multipart => true} do |fp|
=fp.file_field :image
%p
= fields_for :photo, :html => {:multipart => true} do |fp|
=fp.file_field :image
%p.button
= f.submit
产品控制
def new
@product = Product.new
@photo = Photo.new
end
def create
@product = current_user.products.build(params[:product])
@photo = current_user.photos.new(params[:photo])
if @product.valid? && @photo.valid?
@product.save
@photo.product_id = @product.id
@photo.save
render "show", :notice => "Sale created!"
else
render "new", :notice => "Somehting went wrong!"
end
end
最佳答案
您正在尝试实现嵌套属性形式。所以将 fields_for 部分更改为
%p
= f.fields_for :photos do |fp|
=fp.file_field :image
然后在 Controller 中改变你的新方法
def new
@product = Product.new
3.times{ @product.photos.build }
end
def create
@product = current_user.products.new(params[:product])
if @product.valid?
@product.save
render "show", :notice => "Sale created!"
else
render "new", :notice => "Something went wrong!"
end
end
你的模型应该像下面这样关联
class Product
has_many :photos
accepts_nested_attributes_for :photos, allow_destroy: true
end
class Photo
attr_accessible :image
belongs_to :product
end
如果你想为照片实现一个“添加更多”按钮,你可以使用 Gem nested_form .它非常漂亮。
关于ruby-on-rails - Rails - 使用一个 form_for 上传多个文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16932107/
是 {:action => 'update', :id => @product.id})) do |f| %> ... 和 {:action => 'update', :id => @pro
我实现了一个表单文本字段字符计数器,它可以在 jsfiddle 中工作,但不能在应用程序中工作。它会出现,但不会像在 jsfiddle 中那样实时计数。当我重新加载页面时,它将计算文本字段中的当前字符
我正在尝试创建一个只有一个文本字段和一个隐藏字段的表单,我将在将数据传递到 HTTP API 时使用该字段,因此我没有与之关联的模型,并且通过扩展,没有变更集。 是否可以做到这一点并使用 form_f
我的表单如下所示: ~~~form stuff~~~ { disable_with: "Processing" }, :class => "btn btn-info
我需要将表单提交到外部 URL,所以我有这个: form_for(@task, :url => "https://www.external.com/Submit") do |f|) @ass
我有两个模型: 品牌 has_many :products 产品 belongs_to :brand 在我看来 (show_brand.html.erb),我使用 @brand.name ... 显示
我在财务模块中有以下模型: class Finance::BillRec :destroy ... end class Finance::BillRecOff ... 路线.rb nam
我写了以下代码:- 翻译成 我的 routes.rb 文件包含以下代码:- root 'static_pages#home' get 'contact'=>'static_pages#conta
我正在试验嵌套资源: 我的路线: resources :conversations do resources :replies do resources :comments
我的项目是这样组织的:用户是主要资源,每个用户都有一个配置文件,每个配置文件都有一个位置,如下所示: resources :users do resource :profile, :c
我有一个表单,提交后会运行 sidekiq 工作程序。目前,如果您在空表单上单击“提交”,它会尝试运行工作程序。我想要的是它提醒用户在提交之前需要填写这些字段。 我尝试将 :required => t
我有一个关于 form_for 和嵌套资源的两部分问题。假设我正在编写一个博客引擎,并且我想将评论与文章相关联。我定义了一个嵌套资源,如下所示: map.resources :articles do
我想要一个 form_for @user,但要发布到用户 Controller 中的自定义操作。 我该怎么做? 最佳答案 form_for @user, :url => url_for(:contro
我有一个 Rails form_for html 元素。该表单有一个调用 JavaScript 函数的 onsubmit 属性。 onsubmit 工作正常,但是当我添加额外的参数时,js 函数不再受
我试图在提交之前验证我的 form_for 中所有必需的字段是否已完成,并且已完成 95%,但在检查和发出警报之前它仍然会提交。 这是表单的开头: {:id => "new_listing", :o
如果有更好的方式来表达这个问题,或者有更好的方式来做到这一点,请告诉我。 我想使用模态的 form_for 更新一些模型。用户单击“编辑”和带有字段的模式弹出窗口,然后可以单击提交或取消。我可以做到这
我正在尝试在 Rails 中使用客户端验证 Gem。我的表单一直在查找,直到将 `:validate => true"添加到我的 form_for 中。然后我收到一条错误消息,告诉我我编写它的方式是错
我在父 View 中有一个 div,它呈现 show 部分。在这个 show 部分中,我有一个按钮应该更改父部分的部分以呈现“form”部分以编辑对象,但我一直被卡住,因为似乎“form”部分的 fo
我正在使用 form_for 创建一个具有 1 个输入字段和 1 个按钮的表单。我希望提交按钮位于输入字段旁边而不是下方。 相关代码为: .input{border: 1px solid #66666
对于我下面的表格,如何防止表格跳到下一行?我查看了 Bootstrap 类“form-inline”,但似乎没有用,因为它禁用了我的表单。 Hello World! 这导致:
我是一名优秀的程序员,十分优秀!