저는 Rails 2 웹 사이트를 다시 작성하고 있습니다. 지금은 오류가 발생합니다. 값이 .nil 대신 공백으로 제출되기 때문입니다. 그러나 그것을 유지하려는 나의 시도는 효과가없는 것으로 보인다. 당신이 제공해야하는 도움에 감사드립니다. 나는 start_masterlocation_id이 존재하는 경우이 숨겨진 필드에 값을 추가 jQuery를 가지고Rails가 내 양식에서 비어있는 경우 nil을 인식하지 않는 이유는 무엇입니까?
보기
NULL_ATTRS = %w(start_masterlocation_id)
before_save :nil_if_blank
protected
def nil_if_blank
NULL_ATTRS.each { |attr| self[attr] = nil if self[attr].blank? }
end
에 따라 모델에서
. 존재하지 않을 때 필드 속성을 제거하는 jQuery도 있습니다.
마지막으로 다음은 오류를 던지고있는 컨트롤러 부분입니다. 이것은 Newsavedmap의 컨트롤러가 아닌 폼 (Maptry)을 보유하고있는 페이지의 컨트롤러입니다. 나는 @ newsavedmap.id, @ newsavedmap.mapname 및 @ newsavedmap.optimize 행을 삭제해야한다고 생각한다. 이제는 폼 핸들러를 사용할 것이지만이 오류와 관련이 없다고 생각한다.
컨트롤러
def maptry
@itinerary = Itinerary.find(params[:id])
if @itinerary.user_id == current_user.id
respond_to do |format|
@masterlocation = Masterlocation.find(:all)
format.html do
end
format.xml { render :xml => @masterlocation }
format.js do
@masterlocation = Masterlocation.find(:all)
render :json => @masterlocation.to_json(:only => [:id, :nickname, :latitude, :longitude])
end
end
if params[:newsavedmap_id]
@newsavedmap = Newsavedmap.find(:first, :conditions => {:id => params[:newsavedmap_id]})
@waypoint = Waypoint.find(:all, :conditions => {:newsavedmap_id => params[:newsavedmap_id]})
@newsavedmap.id = params[:newsavedmap_id]
@newsavedmap.mapname = Newsavedmap.find(:first, :conditions => {:id => params[:newsavedmap_id]}).mapname
@newsavedmap.optimize = Newsavedmap.find(:first, :conditions => {:id => params[:newsavedmap_id]}).optimize
if [email protected]_masterlocation_id.nil?
@start_name = Masterlocation.find(:first, :conditions => {:id => @newsavedmap.start_masterlocation_id}).name
end
if [email protected]_masterlocation_id.nil?
@end_name = Masterlocation.find(:first, :conditions => {:id => @newsavedmap.end_masterlocation_id}).name
end
else
@newsavedmap = Newsavedmap.new
end
else
redirect_to '/'
end
end
start_masterlocation_id 데이터베이스에 존재하는 경우가 발생하지 않습니다 오류가 발생했습니다.
undefined method `name' for nil:NilClass
여기서 inst_name은 컨트롤러에서 호출됩니다. 나는 선언을 보지 않는다. – Raghu
params [: newsavedmap]이 컨트롤러에 무엇을 표시하는지 알려주실 수 있습니까? – Raghu
Raghu, 오타였습니다. 위에 고정. "당신이 의미하는 것이"params [: newsavedmap]이 컨트롤러에 표시되는 것 "이라는 것이 확실하지 않지만 Maptry 컨트롤러의 전체 섹션을 추가했습니다. 필요한 정보가 있습니까? – KDP