
昨日からRoRで開発している初心者です。
移行するとアプリケーションが動かなくなりました。
開発機でruby on rails + lighttpd + fastcgi にて
rails xxx
ruby script/generate scaffold yyy
・・・
と開発を進めていました。
そして同様構成の本番機に移行したところ、validateが動かないなど
様々な不具合がでています。
移行方法
本番機でrailsコマンドを実行
xxx以下のファイルを全てコピー
ファイルをコピーするだけだと動作しないのでしょうか?
不具合:
1:時々 unknown action がでる
2:varidate(model/...)が動作しない
対処?
1:script/generateコマンドの発行が必要?
ただしい移行方法をどなたか教えていただけませんか?

No.5ベストアンサー
- 回答日時:
#3です。
#2さんの回答を見て思い出したのですが、
validates_*_of 系はデフォルトで
hoge.save時に呼ばれるようになっています。
ですので、私の想像が正しければ今回の件は以下のような対応で治ります。
(#2で答えた方法だと問題アリでした…)
[誤]-------------------------------------------------
validates_presence_of :day, :timeZone, :message => "は必須入力です"
[正]-------------------------------------------------
validates_presence_of :day, :timeZone, :message => "は必須入力です", :on =>[:save, :create, :update]
-----------------------------------------------------
create時だろうがupdate時だろうが
hoge.saveを使えば良い話ではあるのかもしれませんが、
うちの環境ではpostgreSQLでdumpとrestoreすると
hoge.saveでcreateした時にエラーが出たので
hoge.createにした覚えがあります……
>#2さんへ
恐らく、質問者さんは
script/generate scaffold
を使っており、拡張にActiveHeartsを入れているのではないかと思います。
No.4
- 回答日時:
#2です。
#3さんの回答をみて気づいたんですが、#2の回答でupされたコードと内容、なんだかおかしいですね…
>編集などeditではvalidationが動作するのに新規のnewだと動作しません。
validateが起きるのはsaveが呼ばれた時です。
http://d.hatena.ne.jp/keyword/Agile%20Web%20Deve …
は読んでいますか?保存時にafter_やbefore_やvalidateが呼ばれる順番が書いてあるのですが。
def createやdef updateで、saveが呼ばれたときにvalidateが呼ばれるかどうか確認してください。
呼ばれるなら、それが正常です。
こちらの勘違いなら、せめてソースをひと揃い晒してください。

No.3
- 回答日時:
2番目の件についてです。
同じ状態になったので色々と検証してみたのですが、
新規作成時に使用するのは
hoge.createまたはhoge.save
で、
修正時に使用するのは
hoge.updateまたはhoge.save
が一般的かと思います。
自分の場合も新規作成時にエラーが出たので
hoge.createと書いていた部分を全てhoge.saveに書き換えたら
問題なくvalidationが動くようになりました。
# 何らかの条件下で、ActiveRecordのvalidates_*_ofが
# create時に実行されないのかもしれないです。
# バージョンの問題なのか環境の問題なのかは謎。
一度、gem listで、新旧両方の環境にインストールされている
リストを出して、バージョンを比較されてみるといいかもしれません。
No.2
- 回答日時:
validateが動く物とそうでない物の差を、ちょっとずつ検証していくしか無いかも。
ここにコードは上げられないですよね?
>後は、開発モードに依存する書き方をしていないか、とか
以前ひっかかったのが、developmentだと動くのにproductionだと動かない、というものです。
developmentは毎回リクエスト毎にロードされるので、変数値が初期化されます。それを前提としたコードが混じっていたのが原因です。
validationが動かない、というのは、呼ばれても正常に検証しないのですか?それとも、呼ばれもしないのですか?
正常動作するモデルとそうでないモデルの差を、順に検証してください。
この回答への補足
とても返信遅くなりまして申し訳ございません。
developmentに戻しても動作しません。。。
validationは呼ばれもしません。
不思議な事がおきました。
編集などeditではvalidationが動作するのに新規のnewだと動作しません。
いったいどういった順序でvalidationがよばれるのでしょうか?
かなり謎です。
コードの問題とは考えづらいのですが。
<model>
class Hoge < ActiveRecord::Base
set_field_names :name=> '名前'
validates_presence_of :day, :timeZone,
:message => "は必須入力です"
end
<cont>
class HogeController < ApplicationController
def new
@hoge = Hoge.new
end
def edit
@hoge = Hoge.new
end
end
すごく初心者な質問なのですが、
viewからどういった順序でmodelが呼ばれるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby Ruby on Railsでサーバーを立ち上げるには 1 2022/08/28 16:16
- Ruby Gitのクローンについて 3 2022/04/10 12:28
- Windows 10 USBにwindows10をいれて起動する方法 5 2022/04/14 14:29
- WordPress(ワードプレス) Wordpress 複数プラグインの不具合? 1 2022/10/09 21:52
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Ruby プログラミング講師はまだ需要ありますでしょうか? 1 2022/11/07 19:43
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- フリーソフト Windowsのフリーソフト「拡張コピー」のタイムスタンプ関係の仕様は、タイムゾーンを反映しますか? 2 2022/06/21 02:58
- AJAX RPA(PowerAutomate)の実装について 1 2023/07/31 13:46
- その他(ソフトウェア) 特定のpremiere proのファイルが開けなくなりました。 1 2022/11/16 12:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
空メールの自動返信プログラム...
-
HTTPSのとき":"が"%3A"ではなく...
-
htaccessのリダイレクトがルー...
-
C# .NET DataGridView の行を追...
-
指定した スタイルの class の...
-
VC++2005EEにて不可解な挙動
-
MFCのキャプション変更
-
構造体を引数で関数へ渡す
-
Javascriptグローバル変数の値...
-
同じ型【ハイフンと数字】だけ...
-
ASP+アクセスでのSQLコメントに...
-
バイナリファイルから文字列を...
-
ボタンをクリックすると数が増...
-
Boolean型配列中のTrueの有無を...
-
window.onloadでのfunction
-
midiをランダムに再生させ...
-
JavaScript window.openで開く...
-
textareaに入力されたデータを...
-
イベントリスナーの部分を関数...
-
google apps scriptの終了のさせ方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Boolean型配列中のTrueの有無を...
-
HTTPSのとき":"が"%3A"ではなく...
-
ボタンをクリックすると数が増...
-
Linux バイナリ実行できない "...
-
ASP+アクセスでのSQLコメントに...
-
Excel VBA の ChangeFileAccess
-
アンカーリンクをクリックさせ...
-
javascriptで文字挿入でtoggle...
-
ifreamをリロードしたい
-
static と externについて
-
同じ型【ハイフンと数字】だけ...
-
【正規表現】【javascript】CR...
-
System::Drawing::Color::XXXX...
-
MFCのキャプション変更
-
VB.NETで変数の型は自作...
-
【Jquery】changeイベント毎にa...
-
サブウインドウから親ウインド...
-
Vb.netのグローバル変数の宣言...
-
window.onloadでのfunction
-
hogehogeの由来
おすすめ情報