質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

3733閲覧

rails 画像を横に3枚並べたい

pome00000

総合スコア5

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2020/06/15 11:21

編集2020/06/15 11:32

###分からないこと
railsチュートリアルを参考にしてインスタのクローンアプリを作成していますが2点分からないことがあるのでご教授いただきたいです。
1)インスタのユーザーページで画像をアカウント情報のしたに以下のように画像を三列で表示したいです。
イメージ説明
しかし現在はこのようになってしまっているのでこれを解消したいです。
イメージ説明

2)現在ユーザーページとホームのページがどちらも_micropost.html.erbに繋がってしまっているので
これを分けたパーシャルにしてホーム側はユーザーの投稿一覧がコメント付きで縦にずらっと並ぶようにして
ユーザーページ(show)は画像だけで横に3列で並べたいです。
しかしパーシャルを分けると
undefined local variable or method `micropost' for #<#Class:0x00007fcbbc314b30:0x00007fcbbc31e630>
Did you mean? @micropost
のエラーが出てしまいます。何かいい方法はないでしょうか?
ご教授お願いします。


<app/views/users/show.html.erb>

<% provide(:title, @user.name) %> <div class="row"> <aside class="col-md-4"> <section class="user_info"> <h1> <%= gravatar_for @user %> <%= @user.name %> </h1> </section> </aside> <div class="col-md-8"> <% if @user.microposts.any? %> <h3>Microposts (<%= @user.microposts.count %>)</h3> <% @microposts.each do |micropost| %> <ol class="col-sm-4"> <%= render @microposts %> </ol> <% end %> <%= will_paginate @microposts %> <% end %> </div> </div>

<app/views/microposts/_micropost.html.erb>

<li id="micropost-<%= micropost.id %>"> <%= link_to gravatar_for(micropost.user, size: 50), micropost.user %> <span class="user"><%= link_to micropost.user.name, micropost.user %></span> <span class="content"> <%= image_tag micropost.display_image if micropost.image.attached? %> <%= micropost.content %> </span> <span class="timestamp"> Posted <%= time_ago_in_words(micropost.created_at) %> ago. <% if current_user?(micropost.user) %> <%= link_to "削除", micropost, method: :delete, data: { confirm: "You sure?" } %> <% end %> </span> </li>

<app/views/static_pages/home.html.erb>

<% if logged_in? %> <div class = "row"> <aside class = "col-md-4"> <section class = "user_indo"> <%= render 'shared/user_info' %> </section> <section class = "micropost_form"> <%= render 'shared/micropost_form' %> </section> </aside> <div class = "col-md-8"> <h3>投稿一覧</h3> <%= render 'shared/feed' %> </div> </div> <% else %> <div class="center jumbotron"> <h1>Welcome to the Sugisutagram</h1> <h2> This page is an Instagram copy page created by Sugiyama. </h2> <%= link_to "Sign up now!", signup_path, class: "btn btn-lg btn-primary" %> </div> <div class= "cafeimage"> <%= image_tag("p602.jpg") %> </div> <% end %>

<app/views/shared/_feed.html.erb>

<% if @feed_items.any? %> <ol class = "microposts" > <%= render @feed_items %> </ol> <%= will_paginate @feed_items, params: { controller: :static_pages, action: :home } %> <% end %>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

grid関連はbootstrapなどのフレームワークを利用されていますか?
パッとみた感じだと、Railsの問題というよりCSSの問題です。
利用されているフレームワークのGridシステムを理解してください。

Bootstrap4: https://getbootstrap.jp/docs/4.3/layout/grid/

レスポンシブを無視すると下記のようなイメージです。だいぶ省略しているのと不確定要素がありますが、rowやcolのイメージが伝わればと思います。

app/views/users/show.html.erb

erb

1<div class="container"> 2 <div class="row"> 3 <div class="col-12"> 4 <section class="user_info">...</section> 5 </div> 6 </div> 7 <div class="row"> 8 <%= render @microposts %> <!--このように書いた時はeachは不要だったはずです。--> 9 </div> 10</div>

app/views/microposts/_micropost.html.erb

erb

1<div class="col-4"> 2 <div>...</div> 3</div>

※おそらく折り返してくれるはず。

投稿2020/06/22 10:37

Cojiro

総合スコア539

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問