簡體   English   中英

Ruby on Rails-如何將圖像上傳器添加到simple_form Gem

[英]Ruby on Rails - How would I add a image uploader to the simple_form Gem

我正在創建一個基本的房屋列表頁面,以便與Rails保持聯系,而且我正在嘗試找出如何在Ruby on Rails上將圖像文件上傳器添加到simple_form gem上。

目前,我有一個基本的表格,要求輸入標題,價格和說明,在創建表格時,我為圖像添加了一個輸入字段,但我想允許用戶添加一個圖像文件,而不是輸入字段將與house.image添加到清單中

我的代碼如下:

index.html.erb-

<p><%= link_to "Add a House", new_house_path %></p>

<% @houses.each do |house| %>

  <div class="house">
    <p><%= house.image %></p>
    <h2><%= house.title %></h2>
    <h2><%= house.price %></h2>
    <p><%= house.description %></p>
  </div>
<% end %>

<p><%= paginate @houses %></p>

house.rb-

class House < ActiveRecord::Base
    validates :title, presence: true
    validates :price, presence: true
    validates :description, presence: true
    validates :image, presence: true
end

house_controller.rb-

class HousesController < ApplicationController
  def index
    @houses = House.page(params[:page]).per(20).order(created_at: :desc)
  end

  def new
    @house = House.new
  end

  def create
    @house = House.new(params.require(:house).permit(:title, :price, :description, :image))
  if @house.save
    redirect_to root_path
  else
    render "new"
  end
  end

end

new.html.erb-

<%= simple_form_for @house do |form| %>
 <%= form.input :title, label: "House title" %>
 <%= form.input :price, label: "House price" %>
 <%= form.input :description, label: "Describe your house" %>
 <%= form.input :image, label: "Image of house" %>
 <%= form.button :submit %>
<% end %>

您應該可以更改:

<%= form.input :image, label: "Image of house" %>

<%= form.input :image, as: :file, label: "Image of house" %>

這將創建一個標准的HTML文件輸入字段,該字段允許您的用戶選擇要上傳的本地文件。 有關此字段和其他字段類型的信息,可以使用“ 簡單表單”輸入字段類型

此外,您將需要考慮使用諸如回形針或Carrierwave之類的寶石來處理服務器(在型號中)上的文件。

而且,如果您確實希望在simple_form中使用自定義輸入類型,則可以在“自定義輸入”下的simple_form github存儲庫中了解有關如何實現該類型的信息-上載圖像不是必需的。 對於您的代碼,這將是語法糖。

對於圖像上傳,您可以使用回形針

1https//github.com/thoughtbot/paperclip蜻蜓

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM