Je peux télécharger un fichier et enregistrer le nom de fichier dans la base de données en utilisant carrierwave. Je voudrais afficher l'image du fichier sur une autre page en utilisant l'association.Rails4: Comment afficher un fichier téléchargé en utilisant l'association?
(Althogh j'ai demandé au question pertinent de cela, un commentaire pourrait pas interdit. Je de rentrée, comme une nouvelle question.)
user.rb
class User < ActiveRecord::Base
has_many :articles, dependent: :destroy
.
.
end
article. rb
class Article < ActiveRecord::Base
.
.
belongs_to :user
has_many :photos, dependent: :destroy
accepts_nested_attributes_for :photos
.
.
end
photo.rb
class Photo < ActiveRecord::Base
belongs_to :article
mount_uploader :image, ImageUploader
validates :image, presence: true
#validates :article_id, presence: true
end
articles .schema
CREATE TABLE "articles" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"content" varchar(255),
"user_id" integer,
"created_at" datetime,
"updated_at" datetime,);
photos de .schema
CREATE TABLE "photos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"article_id" integer,
"image" varchar(255),
"created_at" datetime,
"updated_at" datetime);
de users_controller.rb
class UsersController < ApplicationController
.
.
def show
@user = User.find(params[:id])
@articles = @user.articles.paginate(page: params[:page])
end
.
.
end
de articles_controller.rb
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
utilisateurs \ show.html.erb
.
.
<div class="row">
<%= render @articles %>
</div>
.
.
articles \ _article.html.erb
Je voudrais afficher l'image téléchargée ici
<li>
.
.
#Please let me know how to display image here...
<span class="content"><%= article.content %></span>
.
.
</li>
double possible de [Rails4: Comment afficher et éditer le fichier téléchargé à l'aide carrierwave] (http://stackoverflow.com/questions/24583489/rails4-how-do-i-display-and-edit-upload-fichier-using-carrierwave) – sevenseacat
Je suppose que cela pourrait fonctionner '@articles.photos.each do | photo | <% = photo.image%> ' – Pavan
Merci pour votre commentaire, Pavan. Bien que j'ai ajouté '<% @ articles.photos.each faire | photo | %> ',' <% = photo.image%> 'et' <% end %> ', ** NoMethodError dans les utilisateurs # show **, méthode non définie 'photos' pour # apparu à' <% @ articles.photos.each faire | photo | %> '. –
SamuraiBlue