我試圖從幾個text_fields中存儲一些字符串到數組中,然後將其保存到數據庫中。 我有一個名爲「OPENING_HOURS」至極我試着分成使用虛擬屬性,這樣2個不同的屬性欄:將幾個text_field字符串存儲到數組Rails 3
型號
class Venue < ActiveRecord::Base
attr_accessible :opening_hours, :start_time, :end_time
attr_writer :start_time, :end_time
def start_time
@start_time.nil? ? @start_time : opening_hours.to_s.split("-").first
end
def end_time
@end_time.nil? ? @end_time : opening_hours.to_s.split("-").last
end
end
的想法是,你在START_TIME和END_TIME型像這樣:
查看
<%= form_for @venue do |v| %>
<p><%= v.label "Monday" %><%= v.text_field :start_time %>-<%= v.text_field :end_time %><p/>
<p><%= v.label "Tuesday" %><%= v.text_field :start_time %>-<%= v.text_field :end_time %><p/>
<p><%= v.label "Wednesday" %><%= v.text_field :start_time %>-<%= v.text_field :end_time %><p/>
<% end %>
數組應該在DB是這樣的:
{08-12 | 09-14 | 07-13}
用「|」分隔一週的不同日子。
我已經試過幾件事情像控制器:
控制器
class VenuesController < ApplicationController
def new
@venue = Venue.new
end
def create
@venue = Venue.new(params[:venue])
@total_time = params[:venue][:start_time]+"-"+params[:venue][:end_time]
@venue.opening_hours = @total_time.map {|t| [t.start_time, t.end_time]}
if @venue.save
redirect_to venue_path(@venue), :notice => "Success!"
else
render 'new'
end
end
但似乎沒有任何工作......無論它只是START_TIME和END_TIME從保存的最後一天,或沒有任何東西可以保存。
我在代碼中有@ venue.save,只是忘了在文章中輸入它。我馬上編輯它。 – Jesper 2013-05-14 12:53:11