哦,请耐心等待......我有一个预订模型和司机模型。司机有很多预订,预订属于司机。
添加或编辑预订时,我希望用户能够输入驱动程序的用户名。用户名对于最终用户来说是独一无二的,而不是为每个司机提供一个号码。
现在我就是这样做的:
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中获取驱动程序用户名的值?
我是以正确的方式做到这一点,还是有一种简单易行的方式来做我需要的事情?
答案 0 :(得分:1)
“但是在加载表单时”是指无法创建或编辑时?您可以发布完整更新并发布操作吗?
params [:booking] [:driver] = @ driver.username应该使用字符串而不是对象填充参数,尽管我不确定这是否是您想要做的。如果它是空白而不是将其设置为nil,只需将其留空,nil就是一个对象,这也许就是为什么你会看到'#'
你在这里做的事情似乎并不正确,无论如何,坚持使用选择的驱动程序框可能更有意义,其中字段是driver_id。如果你真的想使用文本框,那么我会帮你解决吗?只需先发布您的代码。
你见过这个吗?它应该有助于指导您更多:
http://railscasts.com/episodes/57-create-model-through-text-field