2012-06-19 6 views
0

그래서 양식을 통해 모델을 검색하려고합니다. 기본적으로 내 최종 목표는이 검색이 조직의 양식에서 사용자 이름과 암호가 일치하는 경우에만 발생하는 검색 결과를 최소 1 회 얻으려면 내 사용자 모델에 "사용자"값을 할당 할 수 있도록하는 것입니다.모델을 통해 검색 하시겠습니까?

컨트롤러 :

class OrganizationsController < ApplicationController 
    def join 
     @organization = Organization.find_by_username_and_password(params[:organization]) 
    end 
end 

보기는 :

<div class="row"> 
    <div class="span6"> 

    <%= form_for(@organization) do |f| %> 

     <%= f.label :username %> 
     <%= f.text_field :username %> 

     <%= f.label :password %> 
     <%= f.password_field :password %> 

     <br /> 
     <%= f.submit "Join!", class: "btn btn-large btn-primary" %> 
    <% end %> 
    </div> 
</div> 

난 그냥이 동작하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 도움/권장 사항은 정말 감사하겠습니다!

답변

1

당신은 동적 파인더 방법을 사용하고 검색 할 각각의 속성 값을 제공 할 수 있습니다

+0

고맙습니다! 이것은 훌륭하게 작동했습니다. –

+0

레일 4부터 동적 찾기 메소드는 둘 이상의 필드에서 더 이상 작동하지 않습니다. 미래에 당신의 앱을 조금이라도 시험해보기 위해 User.where (: password => 'password', : email => 'test @ email'). – sockmonk

1

params 처리 방법이 잘못되었습니다. 당신이 form_for를 사용하고 있기 때문에, 형태의 데이터가 해시에 캡슐화 될 것이다, 즉, PARAMS [: 조직] 내가 코드 줄에 전에 디버거를 추가 할 것을 권 해드립니다 그러나

organization = params[:organization] 
@organization = Organization.find_by_username_and_password(organization[:username], organization[:password]) 

당신의 방법 및 실험하십시오!

Organization.find_by_username_and_password('username', 'password') 
+0

나는'undefined method '[]'에 대해 오류가 발생하는 것 같습니다 : NilClass' 내가 뭘 잘못하고 있니? –

+0

좀 더 자세히 설명해 주시겠습니까? 나는. 정확히 무엇을 시도 했습니까? – sohaibbbhatti

+0

글쎄, 당신이 작성한 것을 OrganizationsController의 나의 조인 메쏘드에 정확히 써 넣었습니다. 다른 코드는있는 그대로입니다. 내가 할 수있는 한 많이 바꿨지 만 항상이 오류가 발생합니다. 그리고 에러는'@organization = Organization.find_by_username_and_password (organization [: username], organization [: password])' –

0

는 메소드 이름 find_by_username_and_password에 따르면, 두 개의 매개 변수를 전달해야합니다. 예를 들어, 우리는 첫 번째 매개 변수

User.find_by_password_and_email 'password','[email protected]' 
를 검색하면 모델의 속성의 조합을 사용할 수있는 재미있는 암호 이메일의 가치와 두 번째를해야한다 있도록 먼저 와서 파인더 방법 이메일에 이메일 (암호)를 검색

User.find_by_email_and_password '[email protected]','password' 

굉장 레일 :

관련 문제