轨道中的字段用于选择“belongs_to”对象

时间:2010-03-08 11:53:04

标签: ruby-on-rails entity-relationship belongs-to form-for

哦,请耐心等待......我有一个预订模型和司机模型。司机有很多预订,预订属于司机。

添加或编辑预订时,我希望用户能够输入驱动程序的用户名。用户名对于最终用户来说是独一无二的,而不是为每个司机提供一个号码。

现在我就是这样做的:

def create
  if params[:booking][:driver].empty? 
    params[:booking][:driver] = nil 
  else
    @driver = Driver.find(:first, :conditions => { :username => params[:booking][:driver] })
    params[:booking][:driver] = @driver
  end

此代码适用于提交,但是在加载表单时,它会显示对象的引用(例如#),我需要它来显示用户名。如何更改<%= f.text_field:driver%>在编辑视图中的form_for中获取驱动程序用户名的值?

我是以正确的方式做到这一点,还是有一种简单易行的方式来做我需要的事情?

1 个答案:

答案 0 :(得分:1)

“但是在加载表单时”是指无法创建或编辑时?您可以发布完整更新并发布操作吗?

params [:booking] [:driver] = @ driver.username应该使用字符串而不是对象填充参数,尽管我不确定这是否是您想要做的。如果它是空白而不是将其设置为nil,只需将其留空,nil就是一个对象,这也许就是为什么你会看到'#'

你在这里做的事情似乎并不正确,无论如何,坚持使用选择的驱动程序框可能更有意义,其中字段是driver_id。如果你真的想使用文本框,那么我会帮你解决吗?只需先发布您的代码。

你见过这个吗?它应该有助于指导您更多:

http://railscasts.com/episodes/57-create-model-through-text-field