开发者

form drop down select relationship

I am confused with this. I have a company model and a message model. Company has_many messages and messages belongs_to company. I am having problems with the data being saved to the proper company with this form is saved.

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

every time this form is saved the company_id is null. My code for the controller to save is

def create
  @msg = current_user.messages.build(params[:msg])
  if @msg.save
    flash[:success] = "New message saved"
    redirect_to current_user
  else
    rende开发者_JS百科r current_user
  end
end

Nothing stands out to me as to why this is not saving, can someone guide me to the right direction?

Jeff


In your controller, don't you need to find the current company? Something like

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

would work. As far as mixing has_many with both users and companies, this thread on SO seems good. Rails Model has_many with multiple foreign_keys

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜