2012-06-29 65 views
1

我需要用戶在我的表單中輸入一個URL。但是,URL不是我數據庫中的列。我收到以下表單的錯誤。Rails form_for additional field

我有一個表格,以創建視頻(new.html.haml)

= form_for @video do |f| 
    .field 
    = f.label :title 
    = f.text_field :title 
.field 
    = f.label :description 
    = f.text_area :description 
.field 
    = f.label :url 
    = f.text_field :url 
.field 
    Provider 
    %br 
    = radio_button :video, :provider, 'vimeo' 
    = f.label :provider, 'Vimeo', :value => 'vimeo' 
    %br 
    = radio_button :video, :provider, 'youtube' 
    = f.label :provider, 'Youtube', :value => 'youtube' 
%br 
.actions 
    = f.submit "Add video" 

滑軌抱怨URL不在URL一列未知方法或可變的。

我想做

什麼基本上,我需要獲得一個網址爲視頻用戶增加,與視頻的標題,其描述與供應商一起。

所有字段在數據庫中都有一列,只有URL沒有。

然後我需要格式化URL並調用一些方法。它會創建一些新的輸出,我將存儲數據庫。

所以從URL,我得到provider_video_id,thumb這是databse列。

**如何在沒有專用數據庫列的情況下在我的表單中接收用戶URL?

回答

1

您需要使用虛擬屬性。

把你的模型是這樣的:

def url=(url) 
    @url = url 
end 

def url 
    @url 
end 
+0

感謝您的快速回答。實際上,我在我的控制器中使用了虛擬attbutes,接着是Ryan Bates的屏幕播放,但我不知道在getter和setter中寫什麼。我會試試你的伎倆。 –

+0

如果這正是你想要做的,你可能只想在模型中添加:** attr_accessor:url **。 – Nerian

1

您可以使用form_tag。它不與任何對象綁定,所以當你有一個簡單的形式的簡單理由時,就是你想要使用的東西。例如,搜索表單將使用form_tag,這種情況也是如此。

+0

謝謝,目前我會嘗試nerian的答案,但我理解你的解決方案,並可能使用它。 –