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

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

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

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

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Ruby on Rails

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

Q&A

解決済

2回答

530閲覧

RailsでTwitterAPIを使おうとすると「NameError in MycontrollerController#update uninitialized constant Mycontrol

jetcat

総合スコア13

Ruby

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

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Ruby on Rails

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

0グッド

1クリップ

投稿2019/04/27 09:44

編集2019/04/27 09:54

Cloud9のRuby上から gem install 'twitter' して問題なくTweetできたのに、以下のサイトを参考にして以下のRailsコントローラーで上記のエラーになります。

各種キーの値は伏せてあります。

http://nabesys.com/article/2018/02/08371/

発生している問題・エラーメッセージ

NameError in MycontrollerController#update uninitialized constant MycontrollerController::Twitter

該当のソースコード

class MycontrollerController < ApplicationController
before_action :set_twitter_client

def update
@twitter.update("テストTweet1\nRailsからのTweet実験")
render plain: "Twitter.update"
end

private

def set_twitter_client
@twitter = Twitter::REST::Client.new do |config|
config.consumer_key = "XXXXXXX"
config.consumer_secret = "XXXXXXX"
config.access_token = "XXXXXXX"
config.access_token_secret = "XXXXXXX"
end
end
end

試したこと

Railsでも require が必要かと思い require 'twitter' をコードに組み入れると、
「cannot load such file -- twitter」とエラーが表示されます。

お手数ですが、ご教示のほどよろしくお願いします。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/04/27 17:02

config/routes.rbの中身はどうなっていますか?
jetcat

2019/04/28 02:49

ご返答ありがとうございます。routes.rbは以下のようになっていました。 Rails.application.routes.draw do get 'mycontroller/update' get 'mycontroller/set_twitter_client' get 'twitters/update' get 'twitters/set_twitter_client' # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html end
jetcat

2019/04/28 02:52

「twitters」というのは、最初に作ったコントローラの名前です。命名規則の問題かと思い、「mycontroller」というコントローラーを作り直しました。
guest

回答2

0

ベストアンサー

Gemfilegem 'twitter' を書いていますでしょうか?

投稿2019/04/28 03:26

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

jetcat

2019/04/28 03:46

ご指摘ありがとうございます。後ほど調べてご報告させていただきます。
jetcat

2019/04/28 09:02

報告が遅れて申し訳ありません。ご指摘の通りGemfile に記述し忘れておりました。初歩的なミスをしてしまい、申し訳ありません。ご丁寧な対応ありがとうございました!そして修正後無事にTweetできました!
guest

0

10tm84さんがご指摘の通りGemfile にgem 'twitter' を記述し忘れておりました。初歩的なミスをしてしまい、申し訳ありません。ご丁寧な対応ありがとうございました!そして修正後無事にTweetできました! 私の方で解決方法として記録させていただきます。

投稿2019/04/28 09:06

jetcat

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問