Railsアプリのあるフォルダーに移動します。
cd railsdemo
‘users’というcontrollerを作成します
rails generate controller users index
サーバー(Rails)を再起動します。
localhost:8080/users/index を開き
“Users#index”
と書いてあるページが出ていれば作成成功です。
new.html.erb というファイルを app/views/users/ に作成し、
以下の、フォームを作成するHTML+RoRコードを追加してください。
<%= form_for @user do |f| %> <div>name<%= f.text_field :name %></div> <div>comment<%= f.text_area :comment %></div> <div><%= f.submit "submit" %></div> <% end %>
アクセスするためのルーティングも行います。次の行を追加してください。
config/routes.rb
resources :users
このフォームはデータベースにデータを送信するためのものですが、今はフォームのみなのでまだちゃんと動きません。
そのため、データを受け取るためのモデルを作ります。
rails generate model user
成功していれば
“create db/migrate/20160822041238_create_users.rb”
という記述(+上下にも数行)が表示されると思います。
このファイルを開き、以下の設定を追加してください。
t.string :name t.string :comment t.timestamps null: false
データベースへの変更を適用します。
rake db:migrate
これでフォーム(view)とデータ(model)を作成できました。
しかしこれを受け渡すための機能が必要です。
app/controller/users_controller を開き、以下のコードを追加してください。
def new @user = User.new @users = User.all end def create @user = User.new(user_params) @user.save redirect_to :action => "new" end def user_params params.require(:user).permit(:name, :comment) end
コントローラーはそれぞれのページにおけるデータなどの操作を担当します。
この、Model-View-Controller の内部構造をMVCモデルといいます。
一度フォームを埋めて送信してみましょう。
送信したデータを確認します。
mysql -u root -p ~put password~ mysql>use railsdemo_development; ~confirm your data~
ここまでで名前とコメントを記録できるようになりました。
次はそれを表示してみましょう。
次の表現を活用して、自身で挑戦してみてください。
<% @users.each do |user| %>
~~some contents~~
<% end %>
以上で簡素なツイッター風アプリケーションを作ることができました。
1.”nickname”というパラメータを追加してください。
2.コメントを逆順に表示してください( 最新のコメントを上に ).
3.Bootstrapを用いてスタイルを変えてください。
4.禁止ワードを設けて、含まれる場合には表示されないようにしてください。