문제

나는 이것에 대한 문서를 읽었으며, 여전히 이것을하는 방법을 모르게하지 않는다.

테이블에 열이 있습니다. 부울 무료

true  = free
false = paid
nil   = both
.

나는이 형태 로이 같은 논리를 캡처하려고하고 있습니다. 나는 절대적으로 끔찍한 일을하고 있습니다 ... 지금까지 모든 것이 무료로 올라온

index.html.erb :

 <div class="field">
    <label class="radio">
      <%= radio_button_tag(:free, "free", :checked => true) %>
      Free
    </label>
    <label class="radio">
      <%= radio_button_tag(:free, "paid") %>
      Paid
    </label>
    <label class="radio">
      <%= radio_button_tag(:free, "both") %>
      Both
    </label>
  </div>
.

Resources_Controller.rb (나는 그것이 틀린 정보를 입력하더라도 매개를 확인하십시오.) 그러나 그것이 저장하지 않고 저장할 수 있는지 확인하는 것이 어떻게되는지 모르겠다... 내가 매개 변수를했는지 여부를 알지 못했지만 나는 그것을 확인하는 방법을 확신하지 못합니다. p params[:resources]를 할 때 ID가 어떻게 그것을 좋아하는지를 인쇄하지 않습니다. 이런 종류의 레일 에서이 일을하는 좋은 방법이 있습니까?

def create
    @resource = Resource.new(params[:resource])

    if params[:resource][:free] = "free"
      @resource[:free] = true
    elsif params[:resource][:free] = "both"
      @resource[:free] = nil
    else
      @resource[:free] = false
    end

    if @resource.save
      redirect_to root_url
    else
      render :action => :new
    end 
  end
.

자원 _helper.rb

  def output_free
    if @resource.free = true
      "Free"
    elsif @resource.free = false
      "Paid"
    else
      "Both"
    end
  end
.

도움이 되었습니까?

해결책

fuzzy logic, true / false / null입니다.SQL에 존재하는 경우, 당신은 그럴 수 있습니다, 그러나 그것은 당신이 원하지 않는 마술입니다.enum과 3 가지 주를 사용하십시오.

및 비교할 ==를 사용하십시오. -)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top