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

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

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

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

1回答

2558閲覧

Padrinoのエラーの解消方法を教えてください。 「ArgumentError - wrong number of arguments (1 for 0):」

SatoTakeshiX

総合スコア113

Ruby

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2014/10/10 11:36

Padrinoいうrubyのフレームワークをvagrantを使って試しております。
公式の日本語サイトでブログを構築するチュートリアルを試したのですが、
エラーになってしまい、うまくいきません。
というより、エラーページの見方がわからず、どこを直せばいいのかがわかりません。
ご存知の方、お力をいただければ幸いです。

###参考にしたページ
Blog Tutorial

###現象
上記のチュートリアルの「投稿の作成」をするために以下を実行しました。

  • padrino g model post title:string body:text
  • padrino rake ar:migrate
  • padrino g controller posts get:index get:show

そして、postsページのルーティングを設定しました。

lang

1# app/controllers/posts.rb 2SampleBlog.controllers :posts do 3 get :index do 4 @posts = Post.all(:order => 'created_at desc') 5 render 'posts/index' 6 end 7 8 get :show, :with => :id do 9 @post = Post.find_by_id(params[:id]) 10 render 'posts/show' 11 end 12end

また、ビューの作成もしました。

lang

1# app/views/posts/index.haml 2- @title = "Welcome" 3 4#posts= partial 'posts/post', :collection => @posts

そして、サーバーを起動させて
http://192.168.33.10:3000/posts/
にアクセスしたのですが、以下のようなエラーが表示されました。

![イメージ説明][WIDTH:6![イメージ説明]WIDTH:600

app/controllers/posts.rbファイルの

@posts = Post.all(:order => 'created_at desc')

でうまくデータが読み込めてないように見えるのですが、どうやって直したらよいのかがわかりません。
どうすればpostsページを表示できるようになりますでしょうか?

###動作環境

  • padrino (0.12.3)
  • vagrant(centOS6.5)
  • activerecord (4.1.6)
  • ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux]

以上よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

  • Ruby 2.1.3
  • padrino はGitHub から直接インストール

以上の環境で同様にチュートリアルを追いかけてみました。

いまのActive Record の取得レコード並べ替えの方法が、チュートリアルでの表記と違っているようです。

Active Record での検索方法を検索し、問題の箇所を書き換えてみたところ、エラーの表示もなく、無事に真っ白なページを表示することが出来ました

lang

1# @posts = Post.all(:order => 'created_at desc') 2@posts = Post.all.order('created_at desc')

Link


padrino start したコンソールのログ(とくにエラーになった最初の箇所、利用ライブラリの名称など)、それとWeb ブラウザに表示されたエラー内容、は問題解決の糸口を調べる上でたいへん有用な情報です。

今回はデータベース接続の橋渡し役をしてくれる、Active Record がエラーを吐いていたようです。


(見ていておもったのですが、チュートリアルでのRuby の記法が古かったりしたのがすこし気になりました)

Ruby 1.9 以降ではHash のKey/Value指定に略記法が用意されています

lang

1{ :some_symbol => some_value } 2{ some_symbol: some_value }

投稿2014/10/10 13:27

gouf

総合スコア2321

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

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

SatoTakeshiX

2014/10/10 13:53

goufさん ありがとうございます。感謝いたします。 教えていただいたActive Record での検索メソッドで書き直したところ、 私も無事にPostページを表示することができました。 チュートリアルが古い記述だったんですね。 今のやり方も見つつ、Padrinoを触っていきたいと思います。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問