-1

私はレールに非常に慣れておらず、RESTful API のチュートリアルに従っているので、これらの種類の用語についても同様に初心者であるため、品質があまり良くない場合は言い訳をさせてください。

コマンドでコントローラの子猫を作成しましたrails g controller kitten index

そしてインデックスメソッドで私はこのコードを投稿しました -

class KittenController < ApplicationController
  def index
    require 'open-uri'

    kittens = open('http://placekitten.com/')
    response_status = kittens.status
    response_body = kittens.read[559, 441]

    puts response_status
    puts response_body
  end
end

そしてコメントmatch ':controller(/:action(/:id))(.:format)'されていないroutes.rb

これをナビゲートすると-http://localhost:3000/kitten

これは私がブラウザで得ているものです -

子猫#索引

app/views/kitten/index.html.erb で私を見つけてください

そしてこれは私のコマンドラインで -->

ビリ

ブラウザで期待しているのに、ブラウザではなくコマンドプロンプトに猫が表示されているのに、なぜそうなのかという質問です。

4

3 に答える 3

3

Model-View-Controller rails guideを読む必要があります。

コントローラーは、モデルとビューの間の「接着剤」を提供します。Rails では、コントローラーは、Web ブラウザーから受信した要求を処理し、モデルにデータを問い合わせ、そのデータをビューに渡して表示する役割を担います。

コントローラーで変数を定義し、ビューに表示します。

class KittenController < ApplicationController
  def index
    @variable = 'Hello World'
  end
end

ビュー (app/views/kitten/index.html.erb) で:

<%= @variable %>
于 2013-03-21T17:27:08.607 に答える
3

あなたがどのチュートリアルに従っているかはわかりませんが、これを行うことは、Rails 全般、特に RESTful API の学習にとって非常に奇妙なことのように思えます。

とにかく、putsあなたのコントローラはRubyの標準出力にテキストを出力します。これはサーバーが起動した端末になります。これが、ブラウザではなくコンソールに表示される理由ですputs

これを Web ページに表示する場合は、そのコントローラー アクションのビューを作成する必要があります。おそらく、チュートリアルをさらに進めるとそこにたどり着きます。そうでない場合は、より良いものを見つけたいと思うかもしれません.

于 2013-03-21T17:15:19.300 に答える
0

Rails コントローラーは、render 呼び出しで応答をセットアップします。呼び出しが実行されない場合、適切なビューがインスタンス化され、そのビューがレンダリングされます。あなたの場合は index.html.erb です

これを試して:

render :text => kittens.read[559, 441], :status => kittens.status
于 2013-03-21T17:20:39.730 に答える