2011-01-15 2 views
0

Я смущен этим. У меня есть модель компании и модель сообщений. Компания has_many сообщений и сообщений принадлежит компании. У меня возникают проблемы с сохранением данных в соответствующей компании с сохранением этой формы.форму выпадающего выберите связь

<%= 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 %> 

каждый раз, когда эта форма сохраняется, компания_ид имеет значение 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 с обоими пользователями и компаниями, этот поток на SO кажется хорошим. Rails Model has_many with multiple foreign_keys

Смежные вопросы