読者です 読者をやめる 読者になる 読者になる

【インターン】7日目:これがっ…MVC!

インターン rails

ということで、初心者も初心者、そもそも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だと原始的な赤いルビーのアイコンなのです…。
うーん…