foo.new(params [:foo])のパラメーション順序、他方の前に1つが必要です(Rails)
-
23-09-2019 - |
質問
修正方法がわからない問題があります。それは、無関心なパラメーションのハッシュに関係しています。
Virtual Time = AttributeとVirtual Eating_Session = Attributeを備えたオブジェクト予約があり、時間を設定するときに=外部サーバーリクエストを介して検証したい場合もあります。 Method Times()のヘルプを使用してそれを行い、他のサーバーでルックアップを行い、@Times変数ですべての時間を節約できます。
問題は、Method Times()がEatis_Session属性を必要として有効な時間を見つけることですが、Railsは、 @Reservation = Reservationを実行するときに予約オブジェクトにEating_Sessionがある前に、最初にTimes = Methodを呼び出すことがあります。 new(params [:予約])
class ReservationsController < ApplicationController
def new
@reservation = Reservation.new(params[:reservation])
# ...
end
end
class Reservation < ActiveRecord::Base
include SoapClient
attr_accessor :date, :time
belongs_to :eating_session
def time=(time)
@time = times.find { |t| t[:time] == time }
end
def times
return @times if defined? @times
@times = []
response = call_soap :search_availability {
# eating_session is sometimes nil
:session_id => eating_session.code, # <- HERE IS THE PROBLEM
:dining_date => date
}
response[:result].each do |result|
@times << {
:time => "#{DateTime.parse(result[:time]).strftime("%H:%M")}",
:correlation_data => result[:correlation_data]
}
end
@times
end
end
私はこれを修正する方法がわかりません、どんな助けも断ち切られます。
解決
- ここでptraceのストレート出力を見てください: PTRACE(PTRACE_PEEKTEXT、651,0XCC4FE480、[0x3AC706A4506FA1D])= 0 最後のパラメータが正方形の括弧で注釈されているのはなぜですか?それは戻り値を表すことを意味しますか?
正しい。
- 2つの.soの間には、任意のiノードに関連付けられていないセクション(Who kont)があります。そのようなセクションは何を表しますか?
mmap
フラグを使用してMAP_ANONYMOUNS
edされているメモリの領域です(すなわち、ディスク上のファイルには一致しません)。その地域のサイズは正確に1MBであり、
PROT_NONE
でマッピングされたプライベート領域に囲まれているので、この領域はスタックガードゾーンで囲まれたスレッドスタックを表すのは安全なベットです。
- GDBはそのセクションから1つの単語を読み取り、その単語をアドレスとして使用しますが、実際には無効なアドレスです。そのようなエラーの可能な原因は何ですか?
何らかの理由でGDBはアドレス
0x3ac7068
にコードがあるべきであると考えており、内部ブレークポイントを配置したいと考えています。 GDBは内部ブレークポイントを使用してロードされた共有ライブラリを追跡します(とりわけ)
maintenance info break
からの出力は、どのコードGDBが「悪い」アドレスに存在しているかを明らかにするべきです。