2011-01-15 37 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都爲空。我對控制器以節約代碼

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 

沒有站出來給我,爲什麼這是不節能,可有人指導我正確的方向?

Jeff

回答

0

在您的控制器中,您是否需要找到當前的公司?像

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

會工作。至於與用戶和公司的混合has_many,SO上的這個線程看起來不錯。 Rails Model has_many with multiple foreign_keys