Ruby on rails Rails4:如何使用关联显示上载的文件?
我可以上传一个文件,并使用carrierwave将文件名保存在数据库中。我想使用关联在另一个页面上显示文件图像 (虽然我问了与此相关的问题,但不能禁止发表额外的评论。因此我将此作为一个新问题重新输入。) user.rbRuby on rails Rails4:如何使用关联显示上载的文件?,ruby-on-rails,ruby-on-rails-4,carrierwave,Ruby On Rails,Ruby On Rails 4,Carrierwave,我可以上传一个文件,并使用carrierwave将文件名保存在数据库中。我想使用关联在另一个页面上显示文件图像 (虽然我问了与此相关的问题,但不能禁止发表额外的评论。因此我将此作为一个新问题重新输入。) user.rb class User < ActiveRecord::Base has_many :articles, dependent: :destroy . . end .schema照片 CREATE TABLE "photos" ("id" INTEGER
class User < ActiveRecord::Base
has_many :articles, dependent: :destroy
.
.
end
.schema照片
CREATE TABLE "photos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"article_id" integer,
"image" varchar(255),
"created_at" datetime,
"updated_at" datetime);
用户\u controller.rb
class UsersController < ApplicationController
.
.
def show
@user = User.find(params[:id])
@articles = @user.articles.paginate(page: params[:page])
end
.
.
end
class ArticlesController < ApplicationController
.
.
def new
@article = Article.new
@article.photos.build
.
.
end
def create
@article = current_user.articles.build(article_params)
.
.
end
def edit
@article = Article.find(params[:id])
end
def update
@article = Article.find(params[:id])
if @article.update(article_params)
redirect_to current_user
else
render 'edit'
end
end
.
.
private
def article_params
params.require(:article).permit(:content, photos_attributes: [:id, :article_id, :image])
end
.
.
end
class UsersController
文章\u controller.rb
class UsersController < ApplicationController
.
.
def show
@user = User.find(params[:id])
@articles = @user.articles.paginate(page: params[:page])
end
.
.
end
class ArticlesController < ApplicationController
.
.
def new
@article = Article.new
@article.photos.build
.
.
end
def create
@article = current_user.articles.build(article_params)
.
.
end
def edit
@article = Article.find(params[:id])
end
def update
@article = Article.find(params[:id])
if @article.update(article_params)
redirect_to current_user
else
render 'edit'
end
end
.
.
private
def article_params
params.require(:article).permit(:content, photos_attributes: [:id, :article_id, :image])
end
.
.
end
class-ArticlesController
users\show.html.erb
.
.
<div class="row">
<%= render @articles %>
</div>
.
.
。
.
.
.
articles\\u article.html.erb
我想在这里显示上传的图像
<li>
.
.
#Please let me know how to display image here...
<span class="content"><%= article.content %></span>
.
.
</li>
.
.
#请让我知道如何在这里显示图像。。。
.
.
我不明白为什么会出现这样的问题。显然,您正在使用Carrierwave上载图像。如果您阅读了它的文档,您会发现获取图像URL并将其显示在页面上非常简单。您需要使用image\u标签来执行此操作
要在文章\\u article.html.erb
中显示图像,可以执行以下操作:
<li>
.
.
#Please let me know how to display image here...
<span class="content"><%= article.content %></span>
<% article.photos.each do |photo| %>
<span class="image"><%= image_tag(photo.image_url) if photo.image? %></span>
<% end %>
.
.
</li>
.
.
#请让我知道如何在这里显示图像。。。
.
.
我想这可能是重复的@articles.photos.each do | photo |
谢谢你的评论,Pavan。虽然我添加了
,
和
,但用户中的命名错误显示,未定义的方法“照片”出现在
上。谢谢Pavan。我可以显示图像。谢谢你。我可以显示图像。我为这个新手问题道歉。
<li>
.
.
#Please let me know how to display image here...
<span class="content"><%= article.content %></span>
<% article.photos.each do |photo| %>
<span class="image"><%= image_tag(photo.image_url) if photo.image? %></span>
<% end %>
.
.
</li>