我正在尝试使用 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>
书籍 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>
上传的代码片段是我第一次尝试,看起来不错,但我不知道这是否正确或如何继续创建方法:/我希望你能帮助我并提前致谢:)
Storm
最佳答案
Carrierwave 和 Imagemagick gem 效果很好。查看 Michael Hartl 的 Ruby on Rails 教程以获取分步说明 ( https://www.railstutorial.org/book/user_microposts#sec-micropost_images )。进行相应修改。
关于ruby-on-rails - 在 Ruby on Rails 中使用个人资料图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29994398/