【インターン】7日目:これがっ…MVC!
ということで、初心者も初心者、そもそもMVCでコーディングするときにどうすればいいのか全く分かっていないです。
同じインターン生の方に何度も質問したり、チューターの方を捕まえたりと、大変ご迷惑おかけしているのですが、徐々に書き方が分かってきた…気がします。
今回は携帯サイトを作るため、jpmobileというものを使います。
windowsだと、cygwinがいるとかめんどくさそうだったので、とりあえず
gem install jpmobile
一応動いているようです。
参考サイト(http://d.hatena.ne.jp/babydaemons/20090824/1251081952)
mysqlから取ってきたデータを表示させると、その部分だけ文字化けして詰まりました。
mysqlでinsert…とコマンドを打ってていたのですが、
コンソールとはsjisという事を初めて知りました… ああ恥ずかしい…
html.erb本体はutf-8で作っているので文字化けしたようです。
.toutf8とかしても、文字化けが治らなかったです…。
そんな場合は、seed.rbに自分が入れたいと思っているデータを入れるように記述して、seed.rbを実行すればいいそうです!
あとインターン生に教えてもらったことは…
modelに:belongs_toとか:has_manyとか記述しているのですが、その記述を使うことで、
a = User.find(:all).first g = a.games.first
こんなこともできるらしい!
User.find(:all).firstでmodelのUserクラス(usersテーブルの値)の一番最初のuserを取る。
その後に、a.games.firstで、今取ってきたuserとつながっているgames(テーブルの中の値)の一番最初を取る
という意味らしいです…。
ウムム…
多対1とか1対多とかの関係を示しているのが、:belongs_toや:has_manyなんですね…(確か
今まで経験した感じの物とはちょっと書き方とかが違うので、なれないと…
ものすごく頭がこんがらがっています‥。
とりあえずなメモ
railsでリンクの貼り方
<%= link_to game.name,:action=>"(多分)同じcontoroller内のメソッド(def)名" %>
もし、URLに値を追加したいときは、:action=>"",:hoge=>"test"みたいな感じで値を追加することが出来ます。
railsでフォームの書き方
<% form_tag ({:action => "メソッド名",:hoge=>"ここにこんな感じで書けば値が追加される"},{:method=>"postとかget"}) do %> <%= text_field_tag 'name=の部分','valueの部分',:size=>'3' %><br> <%= submit_tag "購入する"%> <% end %>
これで
フォームが作成されます。
やっとなんとなく分かってきた気がするのに、明日明後日しか無く、しかも、金曜日は午後から見学に行くので、時間が取れません… あと、他の部署の方からおはなしを聞く会もあったはずなので… ううー
私がすごく遅れているのでなんとかしないと
と思って、
家で作業を再開しようと思ったら…
rubyのそもそもの入れ方の違いのせいか、自分のPCで動かない‥!
rake db:create
をしようとしたところ
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. rake aborted! no such file to load -- mysql
ということで、
gem install mysql
をしたのですが…
Building native extensions. This could take a while... ERROR: Error installing mysql: ERROR: Failed to build gem native extension. /usr/bin/ruby.exe extconf.rb checking for mysql_query() in -lmysqlclient... no checking for main() in -lm... yes checking for mysql_query() in -lmysqlclient... no checking for main() in -lz... yes checking for mysql_query() in -lmysqlclient... no checking for main() in -lsocket... no checking for mysql_query() in -lmysqlclient... no checking for main() in -lnsl... no checking for mysql_query() in -lmysqlclient... no checking for main() in -lmygcc... no checking for mysql_query() in -lmysqlclient... no *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.
色々調べると、
http://www.pistolfly.jp/weblog/2008/08/gem-install-mysql.html
http://maskana.homedns.org/rails/pro/body/96
sudo yum install mysql-devel
しか出てきません…。
windows\(^o^)/
会社のPCはwindowsなのだけれどなー…
多分、one_click_installerみたいなのからインストールされているみたいだったからそのせいなのか…?
アイコンが私のPCだと原始的な赤いルビーのアイコンなのです…。
うーん…