Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails4:如何使用关联显示上载的文件?_Ruby On Rails_Ruby On Rails 4_Carrierwave - Fatal编程技术网

Ruby on rails Rails4:如何使用关联显示上载的文件?

Ruby 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

我可以上传一个文件,并使用carrierwave将文件名保存在数据库中。我想使用关联在另一个页面上显示文件图像

(虽然我问了与此相关的问题,但不能禁止发表额外的评论。因此我将此作为一个新问题重新输入。)

user.rb

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>