Ruby On RailsにLoginEngineのソースを直しました

INDEX PAGE

Ruby On RailsにLoginEngineのソースを直しました


万事準備OKというわけでブラウザからアクセスを試みたのですが
ここでもやっぱり失敗!!
ここら辺になってくると、もう怒りしかわいてこない中、
ネットで調査すると、どうもRails2.0では、
過去利用できた
  <%= start_form_tag :action => ・・ %>
というタグが利用できないようになってしまっているとのこと。

<%= start_form_tag :action => 'xxxxx' %>
    ・・・・・
<%= end_form_tag %>

という箇所を、すべて下のように直す必要があります。

<% form_tag :action => 'xxxxx' do %>
    ・・・・・
<% end %>


具体的には
 /vendor/plugins/login_engine/app/views/user/
以下の下のソースが修正対象です。



 -change_password.rhtml (1箇所)
 -edit.rhtml       (3箇所)
 -forgot_password.rhtml (1箇所)
 -login.rhtml  (1箇所)
 -signup.rhtml  (1箇所)


この修正で、何とかログイン画面にアクセスできるようになりました。
いや、長い道のりだった。
こんなことなら自分で作ったほうが早かったのでは?
と思わずには居られない感じですが、気を取り直してユーザーでも作ろうかと
ユーザー作成画面にリンクすると、(>_<)またもやエラー画面。



本当にいったいどうなっているんだと、怒る気力も萎えたのですが
何とか気を取り直してみると、
どうやら
 /vendor/plugins/login_engine/app/views/user/
    _edit.rhtml
    _password.rhtml

の中の"user"、"submit"というオブジェクトをオブジェクトと認識していない模様。
どうしたものかと思ったのですが、不意に変数の前に「@」をつけてみたら何故か動き出す。

 /vendor/plugins/login_engine/app/views/user/_edit.rhtml


<%= form_input changeable( @user, "firstname"), "First Name", "firstname" %> <%= form_input changeable( @user, "lastname"), "Last Name","lastname" %> <%= form_input changeable( @user, "login"), "Login ID", "login", :size => 30 %>
<%= form_input changeable( @user, "email"), "Email", "email" %> <% if @submit %> <%= form_input :submit_button, ( @user.new_record? ? 'Signup' : 'Change Settings'), :class => 'two_columns' %> <% end %>

 /vendor/plugins/login_engine/app/views/user/_password.rhtml


<%= form_input :password_field, "Password", "password", :size => 30 %> <%= form_input :password_field, "Password Confirmation", "password_confirmation", :size => 30 %> <% if @submit %> <%= form_input :submit_button, 'Change password' %> <% end %>

 ※太字の箇所を追記しています。



これで新規登録画面も表示されるようになり、
やっとこさユーザー登録可能かと思うのもつかの間
ユーザーを登録しても登録されない(T_T)
Exceptionが途中で握りつぶされているようでしたが
 /vendor/plugins/login_engine/app/controllers/user_controller.rb
の中の「transaction」の記述方法がRails2.0の仕様にあってないらしくそこで落ちていました。
というわけで


# Register as a new user. Upon successful registration, the user will be sent to
# "/user/login" to enter their details.
def signup
return if generate_blank
params[:user].delete('form')
params[:user].delete('verified') # you CANNOT pass this as part of the request
@user = User.new(params[:user])
begin
#User.transaction(@user) do
User.transaction do

@user.new_password = true
unless LoginEngine.config(:use_email_notification) and LoginEngine.config(:confirm_account)
@user.verified = 1
end
 ・
 ・
 ・


というように、合計5箇所の「transaction」を修正。
これでユーザー登録がまともにできるようになりました。
本当に長い道のりでした。


しかし、こんなにぐりぐり直しまくってデグレしてないか、
他にもバージョン不適合が存在しないかと不安だらけです。


また、英語のツールなので所どころ日本語化が必要だし
めんどくさいツールだなぁと、やっぱり自分で作ったほうが良かったのでは。。。。。。


というわけで、続報があればまたここで書きます。


########################################################
◎LoginEngineの導入
 其の壱 http://d.hatena.ne.jp/sai-ou89/20080401
 其の弐 http://d.hatena.ne.jp/sai-ou89/20080402
 其の参 http://d.hatena.ne.jp/sai-ou89/20080403
 其の四 http://d.hatena.ne.jp/sai-ou89/20080404
 其の五 http://d.hatena.ne.jp/sai-ou89/20080604
########################################################

INDEX PAGE