Ruby on rails 未保存ruby on rails参数

Ruby on rails 未保存ruby on rails参数,ruby-on-rails,ruby,Ruby On Rails,Ruby,我是一个rails(和ruby)新手,正在与一个脚手架控制器搏斗,我试图对我的配置进行更多调整-记录正在保存,但数据库中的字段为空-这是development.log的结果 Started POST "/events" for 127.0.0.1 at 2011-12-12 10:36:55 +0000 Processing by EventsController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_toke

我是一个rails(和ruby)新手,正在与一个脚手架控制器搏斗,我试图对我的配置进行更多调整-记录正在保存,但数据库中的字段为空-这是development.log的结果

Started POST "/events" for 127.0.0.1 at 2011-12-12 10:36:55 +0000
  Processing by EventsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"mizap5163W5RbRrHiWdepYZDgrsaflhJPWaVhdHlaOA=", "event"=>{"title"=>"bla de bla", "details"=>"bla de bla", "ticket_info"=>"bla de bla", "when(1i)"=>"2011", "when(2i)"=>"12", "when(3i)"=>"12", "when(4i)"=>"10", "when(5i)"=>"34", "ends(1i)"=>"2011", "ends(2i)"=>"12", "ends(3i)"=>"12", "ends(4i)"=>"10", "ends(5i)"=>"34"}, "commit"=>"Create Event"}
  [1m[35m (0.0ms)[0m  BEGIN
  [1m[36mSQL (0.0ms)[0m  [1mINSERT INTO `events` (`created_at`, `details`, `ends`, `image_url`, `location`, `organiser_id`, `ticket_info`, `title`, `updated_at`, `when`) VALUES ('2011-12-12 10:36:55', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2011-12-12 10:36:55', NULL)[0m
  [1m[35m (45.0ms)[0m  COMMIT
Redirected to http://localhost:3000/events/11
Completed 302 Found in 67ms
表单和控制器非常基本,所以我不知道哪里出了问题

控制器方法-

# GET /Events/new
  # GET /Events/new.json
  def new
    @Event = Event.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @Event }
    end
  end

  # GET /Events/1/edit  
  def edit
    @Event = Event.find(params[:id])
  end

  # POST /Events
  # POST /Events.json
  def create
    @Event = Event.new(params[:Event])


    respond_to do |format|
      if @Event.save

        format.html { redirect_to @Event, notice: 'Event was successfully created.' }
        format.json { render json: @Event, status: :created, location: @Event }
      else
        format.html { render action: "new" }
        format.json { render json: @Event.errors, status: :unprocessable_entity }
      end
    end
  end
和形式(可能是非常基本的错误)


禁止保存此事件:





还有模型-(我添加了attr_可访问标签,认为这会有所不同)

class事件
您可以从日志中看到,sql查询没有插入包含任何数据的行,但参数是它们

这是错误的:

def create
    @Event = Event.new(params[:Event])
    ....
end
应该是:

def create
    @Event = Event.new(params[:event])
    ....
end
高频

//此外,您还应该在cvariable名称中使用downcase。大写字母只能用于类名称之类的常量

这是错误的:

def create
    @Event = Event.new(params[:Event])
    ....
end
应该是:

def create
    @Event = Event.new(params[:event])
    ....
end
高频


//此外,您还应该在cvariable名称中使用downcase。大写字母只能用于类名称之类的常量

查看ruby命名约定

建议始终使用小写的实例变量!因此,请使用
@event
而不是
@event

因此,按照rails的指导原则(您的脚手架看起来也一样),您的控制器
create
方法应该如下所示:

def create
  @event = Event.new(params[:event])

  respond_to do |format|
    if @event.save
      format.html { redirect_to @event, notice: 'Event was successfully created.' }
      format.json { render json: @event, status: :created, location: @event }
    else
      format.html { render action: "new" }
      format.json { render json: @event.errors, status: :unprocessable_entity }
    end
  end
end    
请注意,只有类名、模块名和常量是大写的。按照惯例,符号的大小写总是较低的


希望这有帮助。

查看ruby命名约定

建议始终使用小写的实例变量!因此,请使用
@event
而不是
@event

因此,按照rails的指导原则(您的脚手架看起来也一样),您的控制器
create
方法应该如下所示:

def create
  @event = Event.new(params[:event])

  respond_to do |format|
    if @event.save
      format.html { redirect_to @event, notice: 'Event was successfully created.' }
      format.json { render json: @event, status: :created, location: @event }
    else
      format.html { render action: "new" }
      format.json { render json: @event.errors, status: :unprocessable_entity }
    end
  end
end    
请注意,只有类名、模块名和常量是大写的。按照惯例,符号的大小写总是较低的


希望这有帮助。

这是一种惯例吗?即使形式为_for的变量是大写,参数也将是小写?(只是为了将来)是的,没错!您应该遵循约定,因为它可以帮助您完成其他程序员可以使用的应用程序!对于应用程序范围内的部分,而不仅仅是一个模型,这也是很有帮助的!这是一种约定吗?即使形式为_for的变量为大写,参数也将为小写?(只是为了将来)是的,没错!您应该遵循约定,因为它可以帮助您完成其他程序员可以使用的应用程序!对于应用程序范围内的部分,而不仅仅是一个模型,这也是很有帮助的!