2013-11-25 1 views
0

나는 정말로 간단한 질문이라고 생각하는 간단한 대답을 찾는 데 문제가 있습니다.Ruby on Rails : 텍스트 상자 데이터를 사용하여 다른 페이지의 양식 데이터 채우기

내가 원하는 것은 모든 종류의 텍스트 필드를 사용하여 '제목'을 검색 한 다음 사용자를 올바른 페이지로 리디렉션하여 해당 제목에 대한 정보를 입력하는 것입니다.

그래서 사용자가 '1001'을 입력하면 '1001'이라는 제목으로 이미 입력 된 데이터로 채워지는 양식으로 이동하게됩니다.

그래서 나는 여기에 내가 알아 내기 위해 노력하고있어 것 같아요 :

은 하나의 변수가 이제까지 @ subject.subject_id 검색 할 것이라는 점을 가정합니다.

텍스트 필드의 변수를 저장하여 해당 변수를 link_to 필드에 전달하면 전체 페이지에 해당 주제 정보가 채워지는 것을 어떻게 알 수 있습니까? - 내가 '

여기
def update 
    @subject = Subject.find(params[:id]) 

    respond_to do |format| 
     if @subject.update_attributes(params[:subject]) 
     format.html { redirect_to @subject, notice: 'Subject was successfully updated.' } 
     format.json { head :no_content } 
     else 
     format.html { render action: "edit" } 
     format.json { render json: @subject.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

... 

    def populate_values 
    @subject_id = params[:subject_id] 
    redirect_to screening_path(@subject_id) 
    end 
end 

내 경로 코드의 일부는, 멍청한 놈되는 실례하시기 바랍니다있다

subjects_controller.rb :

나는 (populate_values)와 함께 새로운 게임 컨트롤러 요소를 추가 한 여전히 무엇이 무엇을 유발하는지 알아 냈습니다.

routes.rb

#resources :subjects, only: [:new, :create, :destroy] # Copied th 
    resources :subjects 

... 

match '/subjects', to: 'subjects#show' 
    match '/newsubject', to: 'subjects#new' 
    match '/subjects', to: 'subjects#index' 
    match '/showsubject', to: 'subjects#show' 
    match '/editsubject', to: 'subjects#edit' 
    match '/screening', to: 'subjects#screening' 
    #match '/populate_values', to: 'subjects#screening' #Just trying to figure out things. 

그리고 여기이 값은 사용자가 입력 될 위치에서 내보기입니다. 나는 내가 실제로 잘못하고있는 것이 무엇이든지간에이 형태에서 유래 할 가능성이 가장 높다고 생각합니다. 또한이 양식은 주제보기가 아닌 사용자보기 내에 있습니다 (중요하다면). 어떤 도움을 크게 감상 할 수

<% provide(:title, @user.name) %> 

<div class="row"> 
    <aside class="span4"> 
     <section> 
      <h1> 
       <%= gravatar_for @user %> 
       <%= @user.name %> 
      </h1> 
      <hr> 
     </section> 
     <div class="user_profile"> 
      <h2>Data Entry</h2> 
      <body> 
       <p><%= link_to "Add a new Patient", newsubject_path %></p> 
       <p><%= link_to "View Patients", subjects_path %></p> 
       <%= form_tag('/subjects_controller/populate_values') do %> 
        <%= text_field_tag 'subject_id' %> 
        <div class="btn btn-link"> 
         <%= submit_tag "Screening Log" %> 
        </div> 

       <% end %> 

      </body> 
     </div> 
    </aside> 
</div> 

보기/사용자/show.html.erb.

나는 현재이 subject.subject_id를 인식하지 못합니다 그러나

<%= link_to "Screening", screening_path, :subject_id => subject.subject_id, :class => 'btn btn-mini' %> 

와 장난 해요 1.

편집. "정의되지 않은 지역 변수 또는 메소드 제목".

+0

귀하의 심사 경로는 ID를받지 못하지만 귀하의 리디렉션이 ID를 전달하고 있습니다 - redirect_to screening_path (@ 제목 _id) 내가 빠진 것이 있습니까? 그렇지 않으면 <% = f.text_field : subject_id, : value => params [: id] – fatfrog

답변

0

정확하게 이해했다면 "검색"페이지에 사용자가 방금 입력 한 주제 ID를 매개 변수로 동적으로 포함하는 링크를 갖고 싶습니다.

이런 식으로 작동하지 않습니다. 귀하가 직면 한 문제는 다음과 같습니다. 검색 페이지의 실제 링크는 페이지가로드 될 때, 즉 사용자가 아무 것도 입력하기 전에 사용자가 입력 한 내용에 연결할 수 없기 전입니다. 물론 자바 스크립트를 사용하여 트릭을 수행하는 방법이있을 수 있지만 여기서는 양식을 사용하고 싶다고 생각합니다.

당신은 예를 들어,이 것 : 사용자 뷰에서

  • : 검색 페이지를 subject_id을 포착하고 피사체 컨트롤러에 액션을 호출하는 형태를 포함하여, 그것은이

  • 을 subject_id 통과
  • 예를 들어, Rails 스 캐 폴딩 기능을 사용하는 경우 주제보기에있을 수있는 해당 편집보기로 응답하는 갱신 조치가 대상 컨트롤러의이 조치가 될 수 있습니다. 또한 사용자가 작성하고 주제보기의 특정보기로 응답하는 다른 제어기 조치 일 수도 있습니다.

이 Stackoverflow 질문은 다른 컨트롤러 = form_for but to post to a different action에 제출 된 양식을 만드는 데 도움이됩니다.

주제를 컨트롤러에 연결하여 사용자 페이지의 검색 페이지에 배치하면됩니다.

+0

텍스트 필드에 대한 매개 변수 ID를 가져올 수 있습니다.이 문제를 해결하기 위해 많은 노력을 기울 였지만 답변으로 표시했습니다. . 가장 큰 문제는 레일즈 프레임 워크의 내부 동작을 아직 이해하지 못한다는 것입니다. 그래서 저는 양식에 대한 안내서를 읽고 몇 가지 사항을 변경했습니다. 답변 해 주셔서 감사합니다. –

+0

감사합니다. Ian. 모든 것을 이해하는 데에는 확실히 시간이 걸릴 것입니다. 나는 길의 맨 처음에 나 자신을 생각한다. 그러나 아직 완성되지 않았다면, MVC (Model, View, Controller) 프레임 워크와 왜이 3 가지 요소가 완전히 이해되는지를 확실히하기 위해 시간을 투자하는 데 많은 시간을 투자 할 것입니다. 브라우저에서 보낸 HTTP 요청이 응답 (라우팅 -> 컨트롤러/동작 ->보기 렌더링) - 도우미 (보기에서 헬퍼를 사용하여 폼과 같은 요소를 간단한 방법으로 포함 할 때까지 그들은 당신을 위해 HTML 코드를 생성합니다). – Pierre