Rails に慣れようとして始めたばかりで、Ruby についてはあまり知りません。現在、私は名前、電子メール、電話番号を受け取る単純なフォームを含むフレームワークに慣れるための初心者プロジェクトを行っています。送信ボタンを押すと、ページが更新され、送信した情報が表示されます (そのため、データベースとの対話はなく、モデルはほとんど実行しないと想定されています)。非常に単純ですが、Ruby に関する私の現在の知識はごくわずかであるため、やや混乱しています。私はほとんどのビューを書きましたが、コントローラーとモデルに何を入れるかまだ混乱しています。誰かが素晴らしいヒントを提供できれば!
3 に答える
テーブルレスモデルが必要です。このトピックについては、ライアンの優れたWebキャストを参照してください。
モデル(少なくともActiveRecord :: Baseから派生したモデル)にはデータベースが必要です。したがって、モデルを使用している場合は、SQLiteのような単純なモデルであっても、データベースを使用しています。
モデルに降りて、モデルのテーブルを作成するための移行を生成したくない場合は、フォーム値をインスタンス変数に格納し、ビューでそれらを参照するだけです。以下はその方法の簡単な例です。
name
データ(例:およびemail
)をアクションに送信するフォームがある場合create
、createアクションは次のようになります。
def create
@name = params[:name]
@email = params[:email]
render :my_template
end
上記のcreate
アクションは、送信されたパラメータをインスタンス変数に割り当てます。インスタンス変数は、ビューで参照できます。上記の例では、create
アクションはと呼ばれるビューをレンダリングしようとします。このビューmy_template
はおそらく名前が付けられmy_template.html.erb
、次のようになります。
<p>Your name is <%= @name => and your email is <%= @email =>.</p>
これは非常に小さくて工夫された例ですが、うまくいけばこれが役立つでしょう。
モデルの操作に進むと、代わりに作成アクションでモデルの新しいインスタンスを作成し、そのモデルにユーザーから送信されたパラメーターを渡し、モデルを保存してから、データを表示するページにリダイレクトする場合があります。
データベースを使用すると、はるかに簡単になります。
rails new stack
cd stack
rm public/index.html
rails generate scaffold Member name:string email:string phone:string
rake db:migrate
rails server
次に、localhost:3000/members を参照します。
(レール3を使用していると仮定)