我正在使用rails创建数据库网站。我实现了用户可以上传图像的位置。您可以在两个位置上传图像,一个用于供应商,另一个用于库存。其中一个模型被称为"照片"和其他" fotos"。我是铁杆新手,并不确定如何使用相同型号,"照片"上传到数据库的其他部分,所以我创建了模型" foto"并按照教程。但是现在当你上传照片时,按钮会显示"创建照片"。我想要它说"创建照片"。我不知道该怎么做。
我的一些代码文件
_form.html.erb /照片/视图
<%= form_for([@vendor, @vendor.fotos.build]) do |f| %>
<div class="form-group1">
<%= f.label :image %>
<%= f.file_field :image, class: 'form-control1'%>
</div>
<p>
<%= f.submit %>
</p>
<% end %>
_foto.html.erb /照片/视图
<div class="media1">
<div class="media-left1">
<%= link_to image_tag(foto.image.url, class: 'media-object1'), foto.image.url, target: '_blank' %>
</div>
<div class="media-body1">
<h4 class="media-heading1"><%= foto.title %></h4>
</div>
</div>
<p>
<%= link_to 'Delete Photo', [foto.vendor, foto],
method: :delete,
data: { confirm: 'Are you sure?' } %>
</p>
show.html.erb /销售商/视图
<body>
<div class = "head">
<h1>Vendor Information</h1>
<div class = "image1" >
<img src= "http://dx.deucex.com/i/logo.png" >
</div>
</div>
</body>
<%= render @vendor.fotos %>
<h3>Add a photo:</h3>
<%= render 'fotos/form' %>
<p>
<strong>Company:</strong>
<%= @vendor.company %>
</p>
<p>
<strong>Contact Name:</strong>
<%= @vendor.contact_name %>
</p>
<p>
<strong>Phone:</strong>
<%= @vendor.phone %>
</p>
<p>
<strong>Email:</strong>
<%= @vendor.email %>
</p>
<p>
<strong>MOQ:</strong>
<%= @vendor.moq %>
</p>
<p>
<strong>Cost/Item:</strong>
<%= @vendor.cost_per_item %>
</p>
<p>
<strong>Payment Method:</strong>
<%= @vendor.payment_method %>
</p>
<p>
<strong>Terms:</strong>
<%= @vendor.terms %>
</p>
<p>
<strong>Turnover Period:</strong>
<%= @vendor.turnover %>
</p>
<p>
<strong>Returns:</strong>
<%= @vendor.returns %>
</p>
<p>
<strong>Notes:</strong>
<%= @vendor.notes %>
</p>
<%= link_to 'Back', vendors_path %>
fotos_controller.rb
class FotosController < ApplicationController
def index
@fotos = Foto.order('created_at')
end
def new
@foto = Foto.new
end
def create
@vendor = Vendor.find(params[:vendor_id])
@foto = @vendor.fotos.create(photo_params)
redirect_to vendor_path(@vendor)
end
def destroy
@vendor = Vendor.find(params[:vendor_id])
@foto = @vendor.fotos.find(params[:id])
@foto.destroy
redirect_to vendor_path(@vendor)
end
private
def photo_params
params.require(:foto).permit(:title, :image)
end
end
foto.rb /模型
class Foto < ApplicationRecord
has_attached_file :image
belongs_to :vendor
validates_attachment_content_type :image, content_type: /\Aimage\/.*\z/
end
迁移文件
class CreateFotos < ActiveRecord::Migration[5.1]
def change
create_table :fotos do |t|
t.string :title
t.references :vendor, foreign_key: true
t.timestamps
end
end
end
另一个迁移文件
class AddAttachmentImageToFotos < ActiveRecord::Migration[5.1]
def self.up
change_table :fotos do |t|
t.attachment :image
end
end
def self.down
remove_attachment :fotos, :image
end
end
答案 0 :(得分:1)
<%= f.submit 'Create Photo' %>
这应该重命名按钮。有关更多选项,请使用以下链接 https://apidock.com/rails/ActionView/Helpers/FormBuilder/submit
答案 1 :(得分:1)
有两种方式。
<%= f.submit 'Create Photo' %>
# config/locales/en.yml
en:
helpers:
submit:
foto:
create: "Create Photo"
如果您打算翻译应用程序,这种方法会更好。它还可以轻松地使用相同的表单进行创建和更新,并为每个表单提供正确的文本。