user_showページに使っているプロフィール画面をどうページの下記にtweets_index画面にも適応したいです。
現状、users_showページに指定しているプロフィール写真は他にどこにも適応しておらず仮に指定したアイコンになっています。
またuserで指定した写真がtweets_indexに適応されなかったため一旦別写真を適応させております。
これをusers_showで指定した場合その写真をtweets_indexでも適応したいのですがどなたかやり方をご教授いただけますと幸いです。
スクショとコードを貼らせていただきます。
ruby
1 2##users_show.html.erb 3<div class="contents-box"> 4 <div class="AAABBB"> 5 <div class="AAA"> 6 <% if @user.image.nil? %> 7 <%= image_tag 'mypage.png', class: 'image' %> 8 <% else %> 9 <%= image_tag rails_blob_path(@user.image), class: 'image' %> 10 <% end %> 11 </div> 12 <div class="BBB"> 13 <p>@<%= @nickname %></p> 14 <% if current_user.id == @user.id %> 15 <%= link_to "プロフィール編集", edit_user_path(current_user), {:class => "btn3" } %> 16 <% end %> 17 <br><a>????<%= link_to @user.website, (@user.website) %></a><br> 18 <br><span><%= @user.selfintroduction %></span> 19 </div> 20 </div> 21 <div class="slick1"> 22 <p><%= @nickname %>さんのタイムライン投稿一覧</p><br> 23 <% @tweets.each do |tweet| %> 24 <%= render partial: "tweets/tweet", locals: { tweet: tweet } %> 25 <% end %> 26 <p><%= @nickname %>さんの捜索投稿一覧</p><br> 27 <% @locates.each do |locate| %> 28 <%= render partial: "locates/locate", locals: { locate: locate } %> 29 <% end %> 30 <p><%= @nickname %>さんの保護投稿一覧</p><br> 31 <% @keeps.each do |keep| %> 32 <%= render partial: "keeps/keep", locals: { keep: keep } %> 33 <% end %> 34 </div> 35 <script src="slick.min.js"></script> 36 <script type="text/javascript"> 37 $(function(){ 38 $('.slick1').slick({ 39 autoplay: true, 40 dots: true, 41 }); 42 }); 43 </script> 44</div>
rails
1 2##tweets_tweet.html.erb 3 <div class="contents_post"> 4 <div class="content_post"> 5 <div class="pf"> 6 <p><%= image_tag 'mypage.png' %></p> 7 <a href="/users/<%= tweet.user_id %>"> 8 <p>@<%= tweet.user.nickname %></p> 9 </a> 10 </div> 11 <div class="more"> 12 <ul id="more_list"> 13 <li><%= image_tag 'arrow_top.png' %> 14 <ul> 15 <li><%= link_to '詳細', "/tweets/#{tweet.id}", method: :get %></li> 16 <li><%= link_to '編集', "/tweets/#{tweet.id}/edit", method: :get %></li> 17 <li><%= link_to '削除', "/tweets/#{tweet.id}", method: :delete %></li> 18 </ul> 19 </li> 20 </ul> 21 </div> 22 </div> 23 <div class="content_pic" style="background-image: url(<%= tweet.image %>);"> 24 <p><%= simple_format(tweet.catchphrase) %></p> 25 </div> 26 </div>
ruby
1 2##users_controller 3class UsersController < ApplicationController 4 def show 5 @user = User.find(params[:id]) 6 @nickname = @user.nickname 7 @tweets = @user.tweets.page(params[:page]).per(30).order("created_at DESC") 8 @locates = @user.locates.page(params[:page]).per(30).order("created_at DESC") 9 @keeps = @user.keeps.page(params[:page]).per(30).order("created_at DESC") 10 end 11 12 def edit 13 @user = User.find(params[:id]) 14 end 15 16 def update 17 current_user.update(update_params) 18 end 19 20 private 21 def update_params 22 params.require(:user).permit(:nickname, :website, :selfintroduction, :image) 23 end 24end
ruby
1 2##tweets_controller 3class TweetsController < ApplicationController 4 5 before_action :move_to_index, expect: :index #indexが読み込まれる前に:move_to_indexが読み込まれる 6 7 def index 8 @tweets = Tweet.includes(:user).page(params[:page]).per(30).order("created_at DESC") 9 end 10 11 def new 12 @tweet = Tweet.new 13 end 14 15 def create 16 Tweet.create(image: tweet_params[:image], catchphrase: tweet_params[:catchphrase], text: tweet_params[:text], user_id: current_user.id) 17 end 18 19 def destroy 20 tweet = Tweet.find(params[:id]) 21 if tweet.user_id == current_user.id 22 tweet.destroy 23 end 24 end 25 26 def edit 27 @tweet = Tweet.find(params[:id]) 28 end 29 30 def update 31 tweet = Tweet.find(params[:id]) 32 if tweet.user_id == current_user.id 33 tweet.update(tweet_params) 34 end 35 end 36 37 def show 38 @tweet = Tweet.find(params[:id]) 39 @comments = @tweet.comments.includes(:user) 40 end 41 42 private 43 def tweet_params 44 params.require(:tweet).permit(:image, :catchphrase, :text) 45 end 46 47 def move_to_index 48 redirect_to action: :index unless user_signed_in? 49 end 50end
ruby
1 2##user.rb 3class User < ApplicationRecord 4 # Include default devise modules. Others available are: 5 # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable 6 has_one_attached :image 7 8 devise :database_authenticatable, :registerable, 9 :recoverable, :rememberable, :validatable 10 has_many :tweets 11 has_many :comments 12 has_many :locates 13 has_many :locatecomments 14 has_many :keeps 15 has_many :keepcomments 16end
ruby
1 2##tweet.rb 3class Tweet < ApplicationRecord 4 belongs_to :user 5 has_many :comments 6 7end 8
説明等うまく伝えることができず申し訳ございません。
何卒よろしくお願いいたします。
あなたの回答
tips
プレビュー