2017-10-07 7 views
0

내가 원하는 것을 설명하기가 약간 어렵지만 여전히 최선을 다할 것입니다.자원없이 레일즈에서 루비에 데이터 저장하기

레일즈에서 사용자가 특정 필드를 채울 수있는 양식을 만들었습니다. 이제 이러한 필드가 채워지면 라우터에서 리소스를 사용할 수 있고 데이터를 데이터베이스에 저장할 Controller에서 create 메서드를 정의 할 수 있다는 것을 알고 있습니다. 그러나 원하는 것은 폼에 저장된 데이터를 내 컨트롤러로 전달하는 것입니다. 그런 다음 컨트롤러에서 기존 Create 메서드와 같은 사용자 지정 메서드를 만들지 만 Resource 메서드를 사용하여 매개 변수를 전달하는 대신 매개 변수로 전달하려고합니다. 그것은 레일에서도 가능 :

이 양식을 작성하는 현재의 내보기입니다 :

<h1> Please add a new product</h1> 
<%= form_for @product do |p| %> 
    <p> 
    <%= p.label 'Product Name' %><br/> 
    <%= p.text_field :product_name %><br/> 
    </p> 
    <p> 
    <%= p.label 'Description' %><br/> 
    <%= p.text_area :description %><br/> 
    </p> 
    <p> 
    <%= p.label 'Price' %><br/> 
    <%= p.text_field :price %><br/> 
    </p> 
    <p> 
    <%= p.label 'Rating' %><br/> 
    <%= p.text_field :rating %><br/> 
    </p> 

<% end %> 

그래서 나는 루비에 내장 된 형태로 사용하고 될 수 있지만, 난 그냥 컨트롤러의에보기에서 매개 변수를 전달하려면 방법.

도움 주셔서 감사합니다.

+0

읽기 http://guides.rubyonrails.org/routing을 가지고 있다고 가정. html. 항상'post '/ latest_products'=> 'products # latest_create'와 같은 커스텀 라우트를 정의 할 수 있습니다. – kiddorails

답변

0

귀하의 문제를 해결하는 데 도움을 드리겠습니다. 다음 단계를 수행

get "/create_product" => 'products#create_product', as: :create_product 

을하거나 게시 방법을 통해 PARAMS를 전달하려면 :

  1. 는 routes.rb에 경로를 만들기

    post "/create_product" => 'products#create_product', as: :create_product 
    
  2. 를 이제보기를 변경 새 경로 도우미에 따라 파일 :

    form_for (@products, url:{:controller=>'products', :action=>'create_product'}, html:{method:'post'}) 
    
  3. 이제 마지막 단계는 컨트롤러를 수정

    def create_product 
    #your form values are avaible here in params variable 
    pp params 
    puts params[:Price] 
    #save your params into ur db 
    end 
    

참고 : 나는 이미 product.rb 모델