0
예를 들어 product
모델이 있습니다. 각 제품에는 ProductType
이라는 type
이 있습니다. 이제 제품을 만들고 싶습니다.레일 : 사용자 선택을위한 서브 모델이있는 form_for
여기 슬림 사용하여 내 간단한 형태 :이 형태로 원하는
= form_for @product, url: product_path, :html => {:method => post} do f
= f.label :name
= f.text_field :name
= f.submit 'Create'
, 하나를 선택할 수 제품 (ProductType
에서 부하) 및 사용자의 모든 유형을 나열 드롭 다운 목록이 있습니다. 나는 레일에서이 작업을 수행 할 수있는 방법
감사
덕분에 너무 많은. 좀 더 질문이 있습니다. 내 제품에는'type_id'와'type_name' 두 개의 필드가 있습니다 ('ProductType' 쿼리를 막기 위해). 'form_for '를 이해하고'Product'에서'Product' 테이블 필드로'id'와'name'을 각각 보내면됩니다. (그래서 나는 id에서 이름을 얻기 위해 다시'ProductType'을 질의 할 필요가 없습니다.) 덕분에 –
나는이 질문을 모든 사람이 누릴 수 있도록 별도의 질문으로 게시하는 것이 좋습니다. 간단히 말해서,'name'을 설정하기 위해'Product' 모델에서'before_save' 콜백을 사용하는 것이 좋습니다. –
과 다른 것을 하나 더하고자한다면 별도의 게시물을 작성하는 것이 좋습니다. 문서에서 읽을 때, 그들은'collection_select (: post, : author_id, Author.all, : id, : name_with_initial, prompt : true)'와 같은 것을 사용합니다. 그래서 제 경우에는'f.collection_select : product, : type, ProductType.all, : name, : id'이어야합니다. 하지만 이렇게하면 오류가 발생합니다 :'undefined method'merge for : name : Symbol'. thanks –