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

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

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

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

iframe

HTMLのタグ<iframe>です。<iframe>は、ドキュメント内に""inline frame""を作るHTML要素で、同じページでセパレートしているドキュメントが表示されるようにします。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

634閲覧

TwitterのTLウィジェットを作りたい(rails)

yamady

総合スコア176

Ruby

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

iframe

HTMLのタグ<iframe>です。<iframe>は、ドキュメント内に""inline frame""を作るHTML要素で、同じページでセパレートしているドキュメントが表示されるようにします。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/09/10 18:03

いつもお世話になっております。

RailsアプリケーションでWebサイトを開発しているのですが、
ユーザーが投稿したコンテンツの一覧を埋め込みタグとして配信できるようにしたいと考えています。

具体的には、Twitterのタイムラインウィジェットのようなものを想定します。

https://medium.com/@gabrielhilal/widgets-api-in-rails-gabriel-hilal-375a1a859b81
上記のコードを参考にしながら、実装を試みたのですがエラーが出てしまい先に進めていません。

ソースコード

Widgetsコントローラー

Ruby

1class WidgetsController < ApplicationController 2 def show 3 respond_to do |format| 4 format.html { render params[:template], layout: 'widgets' } 5 format.js { render js: js_constructor } 6 end 7 end 8 9 def timeline 10 @user = User.find_by_id(params[:id]) 11 routing_error if @user.blank? 12 @posts = @user.posts.all 13 end 14 15 private 16 def js_constructor 17 content = render_to_string(params[:template], layout: false) 18 "document.write(#{content.to_json})" 19 end 20end

Widgetテンプレートビュー

Ruby

1<!DOCTYPE html> 2<html> 3 <head><%= stylesheet_link_tag 'widgets', media: 'all' %></head> 4 <body> 5 <%= yield %> 6 <body> 7</html>

Widgets/timline.html.erb

Ruby

1 <ul class="posts"> 2 <% @posts.each do |post| %> 3 <%= post.content %> 4 <% end %> 5 </ul>

ルーティング(routes.rb)

Ruby

1Rails.application.routes.draw do 2・・・ 3 4 get '/widgets/:template', to: 'widgets#show' 5 6・・・ 7end

出力を試みている側のHTML

Ruby

1<iframe src="http://localhost:3000//widgets/timeline" width="100%" height="100%" frameborder="0"></iframe>

困っている点

(1) iFrameを出現しようとした際にlocalhostが接続されていないというエラーが出る
(2) ユーザーが自分のページからタイムライン情報を取得してブログなどに貼り付けることを想定しているため、@user = User.find_by_id(params[:id])の構文では不適切であるような気がする

すみませんが、どうかおたすけくださいませ。

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

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

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

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

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

guest

回答1

0

自己解決

ヒアドキュメントを使うことで、解決したように思います。

投稿2018/09/12 19:31

yamady

総合スコア176

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問