2012-10-28 59 views
1

正如我的日志文件所示,当我在应用程序中提交表单时,参数正在正确建立,但它们不保存在我的数据库中。这只发生在两个参数上,这些参数与下拉表单一起使用。来自rails表格的参数未保存在数据库中

这里是我的记录:

Processing by UsersController#create as HTML 
Parameters: {"utf8"=>"✓", "authenticity_token"=>"tIdsWBUB+ik8eeOOxUEQs9mSB/WiSyX2Gkw3/fAw64w=", "user"=> {"name"=>"Jeffgo", "email"=>"[email protected]", "cell_number"=>"5554595515", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "day_open"=>"0", "time_open"=>"14"}, "commit"=>"Create my account"} 

RecordedLesson Load (0.1ms) SELECT "recorded_lessons".* FROM "recorded_lessons" LIMIT 1 
(0.1ms) SELECT 1 FROM "users" WHERE LOWER("users"."email") = LOWER('[email protected]') LIMIT 1 

Binary data inserted for `string` type on column `password_digest` 
SQL (51.2ms) INSERT INTO "users" ("cell_number", "created_at", "day_open", "email", "last_class", "name", "password_digest", "recorded_lesson_id", "test", "time_available", "time_open", "type", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["cell_number", "2154997415"], ["created_at", Sun, 28 Oct 2012 16:45:50 EDT -04:00], ["day_open", nil], ["email", "[email protected]"], ["last_class", 0], ["name", "Jeffgo"], ["password_digest", "$2a$10$Idl8H7tMvotqhwiFteya2eSUaNEdAPNU6dqrp5PPalEyfo7w6x5gq"], ["recorded_lesson_id", 1], ["test", nil], ["time_available", nil], ["time_open", nil], ["type", nil], ["updated_at", Sun, 28 Oct 2012 16:45:50 EDT -04:00]]' 

好了,现在这里是表格的一部分: <%提供(:标题, “注册”)%>

注册

<div class="row"> 
<div class="span6 offset3"> 
<%= simple_form_for @user do |f| %> 
<%= render 'shared/user_error_messages' %> 

<%= f.label :name %> 
<%= f.text_field :name %> 

<%= f.label :email %> 
<%= f.text_field :email %> 

<%= f.label :cell_number %> 
<%= f.text_field :cell_number, :hint => '5555555555' %> 

<%= f.label :password %><br /> 
<%= f.password_field :password %> 


<%= f.label :password_confirmation, "Confirmation" %><br /> 
<%= f.password_field :password_confirmation %> 

<%= f.label :day_open %> <br /> 
<%= f.select("day_open", {"Sunday" => "0", "Monday" => "1", "Tuesday" => "2", "Wednesday" => "3", "Thursday" => "4", "Friday" => "5", "Saturday" => "6"}) %> 

<%= f.label :time_open %> <br /> 
<%= f.select("time_open", {"7:30 pm" => "14", "8:30 pm" => "15", "9:30 pm" => "16"}) %> 
<div class="actions"> 
<%= f.submit "Create my account" %> 
</div> 

<% end %> 

</div> 
</div> 

我的控制器:

class UsersController < ApplicationController 
def new 
    @title = "Sign up" 
    @user = User.new 
end 


def create 
@user = User.new(params[:user]) 
if @user.save 
    flash[:success] = "Welcome to the Sample App!" 
    redirect_to @user 
    else 
    @title = "Sign up" 
    render 'new' 
    end 
end 
end 

最后,这里是我的模型:

class User < ActiveRecord::Base 
has_many :tutoring_sessions 
belongs_to :recorded_lesson 
attr_accessor :day_open, :time_open 
attr_accessible :name, :email, :cell_number, :password, :password_confirmation, 
    :day_open, :time_open, :tutoring_sessions_attributes, :recorded_lesson_id 
has_secure_password 
accepts_nested_attributes_for :tutoring_sessions, :allow_destroy => true 

before_save { |user| user.email = email.downcase } 

validates :name, length: { maximum: 50 } 
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i 
validates :email, format: { with: VALID_EMAIL_REGEX }, 
uniqueness: { case_sensitive: false} 
validates :password, presence: true, length: { minimum: 6}, on: :create 
validates :password_confirmation, presence: true, on: :create 
after_initialize :init 

def init 
    self.recorded_lesson_id ||= RecordedLesson.first.id 
    self.last_class ||= 0 
end 

def advance 
    if self[:recorded_lesson_id] == nil 
     self[:recorded_lesson_id] = RecordedLesson.first.id 
    else 
     self[:recorded_lesson_id] += 1 
    end 
    #self.save 
end 





    def nows_weekday 
     @todays_weekday = Time.now.utc.wday 
    end 

    def number_of_days_from_now 
     (selected_day - nows_weekday) 
    end 



    def is_student? 
     self[:type] == 1 
    end 

    def is_tutor? 
     self[:type] == 0 
    end 

    def set_day_and_time_available 
     set_hour = Time.now.utc.change(:hour => selected_time) 
     set_day = set_first_day_of_session(set_hour) 
     self[:time_available] ||= set_day.to_datetime 
    end 

    def set_first_day_of_session(set_hour) 
     if selected_day > nows_weekday #(Eg. Today is Tuesday and chooses wednesday) 
     first_day_of_session= set_hour.advance(:days => number_of_days_from_now) 
     else #(Eg. Today is Tuesday and chooses Monday) 
      first_day_of_session= set_hour.advance(:days => (number_of_days_from_now + 7)) 
     end 
    end 
end 

回答

1

删除行attr_accessor :day_open, :time_open 它的覆盖,通过ActiveRecord

创建的现有存取,这是比this one

+0

哦,我看到了同样的问题,谢谢 – user924088