【问题标题】:Use profile pictures in Ruby on Rails在 Ruby on Rails 中使用个人资料图片
【发布时间】:2015-05-01 20:13:05
【问题描述】:

我正在尝试使用 Rails 4 创建一个图书馆系统。这些书籍应该有一个标题、作者等,并且已经可以正常工作,但我还希望每本书都有一个“个人资料图片”。我真的不知道如何上传和保存图片。到目前为止,我唯一使用的是 gravatar,但这次对我不起作用。

这是我的 new.html

<h1>Add a new Book</h1>  
<div class="col-md-6 col-md-offset-3">
    <%= form_for(@book) do |f| %>
    <br>
      <%= f.label :title %>
      <%= f.text_field :title %><br><br>

      <%= f.label :author %>
      <%= f.text_field :author %><br><br>

      <%= f.label :isbn %>
      <%= f.text_field :isbn %><br><br>

      <%= f.label :description %>
      <%= f.text_field :description %><br><br>

      <%= f.label :Image %><br/>
      <%= f.file_field 'file' %>
      <%= f.submit "Upload" %><br><br>

  <%= f.submit "Add book", class: "btn btn-primary" %>
    <% end %>
</div>

books_controller

class BooksController < ApplicationController

  def booklist
    @books = Book.all
    if params[:search]
      @books = Book.search(params[:search]).order("created_at DESC")
    else
      @books = Book.order("created_at DESC")
    end
  end

  def new
    @book = Book.new
  end

  def create
    @book = Book.new book_params
    if @book.save
      redirect_to booklist_path
    end
  end

   private
    def book_params
      params.require(:book).permit(:title, :author, :isbn,
        :description)
    end
end

还有我要打印出来的 booklist.html

<div class="center hero-unit">
  <h1>Book Overview</h1>
  <% @books.each do |u| %>
  <tr>
      <td>
        <%= u.title %> | <%= u.author%> |    
        <hr>
        <br>
      </td>
  </tr>
  <% end %>

  <% @books.each do |b| %>
  <div>
    <h1><%= link_to b.title, b %></h1>
    <p><%= b.author %></p>
  </div>
<% end %>
</div>

上传的代码 sn-p 是我的第一次尝试,看起来还可以,但我不知道这是否正确或如何继续使用 create 方法:/ 希望您能帮助我并提前致谢: )

毛毛虫

【问题讨论】:

  • 您尝试过使用回形针宝石吗?

标签: ruby-on-rails ruby ruby-on-rails-4


【解决方案1】:

Carrierwave 和 Imagemagick gem 运行良好。查看 Michael Hartl 的 Ruby on Rails 教程以获取分步说明 (https://www.railstutorial.org/book/user_microposts#sec-micropost_images)。相应修改。

【讨论】:

  • 啊,谢谢!我已经使用了教程,但仍在第 9 章 ^^'
【解决方案2】:

最常见的解决方案是 Carrierwave gem、Paperclip Gem 或类似 filepicker.io 的东西,它们可能会让您的生活更轻松。

【讨论】:

    猜你喜欢
    • 2017-09-30
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多