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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

Q&A

1回答

614閲覧

Railsでデータベースからcontentに対応したhtmlを取得したい

yone109

総合スコア4

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

0グッド

0クリップ

投稿2018/07/20 00:35

編集2018/07/20 01:32

rails初心者です。
DBからcontentを受け取った際にそのcontentに応じてリンク先のurlを取得したいです

例えばid 1のcontentを取り出した際に1.html.erbのhtmlをリンクとして貼り付ける
と言ったような感じです
controllerのdef 変数 で定義できるものなのでしょうか?
もしできるのであれば定義の仕方を教えていただけたら幸いです
<%= link_to(post.content,contentに対応したURL) %>
のような感じでDBを通じて複数定義できるのでしょうか??

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

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

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

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

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

maisumakun

2018/07/20 00:39

Railsのルーティングはどのようになっていますでしょうか。
yone109

2018/07/20 01:07

posts/:idから取得しようとしたのですがその際のパスの通し先を変数に持っていくやり方がわかりません今はget "posts/:id"=>"posts#:id"としていますがおそらくおかしいですよね?
m.ts10806

2018/07/20 01:27

質問編集画面タイトル横にある「初心者アイコン」をご活用ください。「初心者」と質問で書くよりも伝わりますし、質問一覧に表示されるのでわかりやすくなります。
yone109

2018/07/20 01:32

ご指摘ありがとうございます、修正しました
guest

回答1

0

posts/:idから取得しようとしたのですがその際のパスの通し先を変数に持っていくやり方がわかりません

Railsの標準的なルーティングを使いましょう。

ruby

1resources :posts, only: :show

と書くだけで、PostsController#showparams[:id]付きで流れてくるようになります。また、post_path(@post)のようなヘルパーも利用可能となります。

投稿2018/07/20 01:39

maisumakun

総合スコア145183

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

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

yone109

2018/07/20 09:19

ご回答ありがとうございます! 勉強し始めたばかりの初心者なので初歩的な質問をするようで申し訳ないのですが post_path(@post)を使用した際に例えば id:1のcontentに対してa.html.erbid:2のcontentに対してb.html.erb のような感じをpashを通しながら5個ほど生成するとなるとどのような書き方が正しいのでしょうか? <% @posts.each do |post| %> <div class="posts-index-item"> <%= link_to(post.content, " * ") %> </div> <% end %> * ここにshowアクションに渡すのではなくpost.contentに対応したaやbのhtmlの内容を直接表示させたいです (これはrailsの考え方的に間違っていますかね?  おそらくshowアクションに対して<%= @post.content =%>などの形が正しいのかもしれませんが  イメージとして例えばゲーム攻略サイトのように見出しに対して  該当するページを表示させてということを行いたいので画像や文字の位置が毎回変わってしまうのと  created_atによって更新順に並び替えたりということも行えるようにしたいので  適切な考え方があれば教えていただけると幸いです)
maisumakun

2018/07/20 13:19

まず確認として、直接.erbにリンクしてもブラウザでは処理できないので、Railsを介する必要がある、というのは理解していますか?
yone109

2018/07/20 15:20

はい、理解しております。 ですのでおそらくアクション上で処理しないといけないと考えているのですが ルートを明記する際に例えばget "posts/:id"とすれば変数に対してアプローチできるのは 分かるのですがaやbに一つずつ通すのはおかしいのかなと感じております ですのでaやbにルートを通すために アクション上で何らかの処理をしないとけないと思うのですがこの考え方で合っていますでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問