2011-01-15 7 views
0

혼란 스럽습니다. 회사 모델과 메시지 모델이 있습니다. 회사 has_many 메시지와 메시지 belongs_to 회사. 이 양식을 저장하면 적절한 회사에 저장된 데이터에 문제가 있습니다.양식 드롭 다운 관계 선택

<%= form_for(@msg) do |f| %> 
    <%= render 'errors', :object => f.object %> 
    <ul class="fields"> 
     <li> 
     <%= select("msg", "company_id", Company.all.collect {|p| [ p.title, p.id ] }) %> 
     </li> 
    </ul> 
    <ul class="fields"> 
     <li><%= f.label :content, "Send this company your message" %></li> 
     <li><%= f.text_area :content %></li> 
    </ul> 
    <div id="actions"> 
     <%= f.submit "Send" %> 
    </div> 
<% end %> 

이 양식을 저장할 때마다 company_id가 null입니다. 컨트롤러가 저장할 내 코드는

def create 
    @msg = current_user.messages.build(params[:msg]) 
    if @msg.save 
    flash[:success] = "New message saved" 
    redirect_to current_user 
    else 
    render current_user 
    end 
end 

내게 이것이 저축되지 않는 이유가 무엇인지 눈치 채지 못합니다. 누군가 나를 올바른 방향으로 안내 할 수 있습니까?

제프

컨트롤러에서

답변

0

, 당신은 현재의 회사를 찾을 필요가 없다? 예 :

@company = Company.find(params[:company_id]) 
@message = @Company.messages.create(params[:msg]) 

이 효과를 발휘합니다. 지금까지 사용자와 회사 모두와 has_many를 섞어 놓은 것처럼이 스레드는 너무 좋아 보인다. Rails Model has_many with multiple foreign_keys