Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails上保存记录_Ruby On Rails_Database_Combobox - Fatal编程技术网

Ruby on rails 在rails上保存记录

Ruby on rails 在rails上保存记录,ruby-on-rails,database,combobox,Ruby On Rails,Database,Combobox,从我之前的问题中可以看出,我已经习惯了rails,现在我遇到了创建函数的问题,因为它没有从数据库中保存组合框中的记录,如下所示: 但它会将其余记录保存在数据库中,为便于检查,我键入以下内容: rails console TankingLog.all TankingLog Load (0.7ms) SELECT "tanking_logs".* FROM "tanking_logs" [#<TankingLog id: 7, car_id: 28, cost: 3000.0, date

从我之前的问题中可以看出,我已经习惯了rails,现在我遇到了创建函数的问题,因为它没有从数据库中保存组合框中的记录,如下所示:

但它会将其余记录保存在数据库中,为便于检查,我键入以下内容:

rails console
TankingLog.all
TankingLog Load (0.7ms)  SELECT "tanking_logs".* FROM "tanking_logs" 

[#<TankingLog id: 7, car_id: 28, cost: 3000.0, date: "2012-07-30 00:00:00", gallon: 2.0, gas_station_id: nil, km: 5000, created_at: "2012-07-30 22:00:40", updated_at: "2012-07-30 22:00:40">]
如您所见,加油站id字段为零,但它必须是所选加油站的id 我感谢任何帮助,如果这是一个愚蠢的问题,我很抱歉

表格如下:

<div class="container">
    <h2>new tanking log</h2>
    <%= form_for ([@user,@car,@tankinglog]) do |f| %>
      <div><%= f.label :cost %><br />
      <%= f.text_field :cost %></div>

      <div><%= f.label :gallon %><br />
      <%= f.text_field :gallon %></div>

      <div><%= f.label :km %><br />
      <%= f.text_field :km %></div>

      <div><%= f.label :date %> <i>( format yyyy-mm-dd )</i> <br />
      <%= f.text_field :date %></div>

      <div><%= f.label :Station %><br />
      <%= select("gas_station", "name", GasStation.all.collect {|gs| [ gs.name, gs.id ] }, { :include_blank => true })%></div>
      <p>
        if you don't see the station that you want, you can <%= link_to "create it", new_gas_station_path%> 
      </p>

      <div><%= f.submit "create tanking",:class => "btn btn-primary" %></div>
    <% end %>
    <br />
    <%= link_to "Back", user_car_tanking_logs_path(@user, @car),:class => "btn btn-primary"%>
  </div>
还有tankinglogcontroller

class TankingLogsController < ApplicationController
def new
@user = User.find(params[:user_id])  
@car = @user.cars.find(params[:car_id])
@tankinglog = @car.tanking_logs.build
end

def create
@user = User.find(params[:user_id])  
@car = @user.cars.find(params[:car_id])
@tankinglog = @car.tanking_logs.build(params[:tanking_log])
if @tankinglog.save
  redirect_to user_car_tanking_logs_path(@user, @car), :flash => { :notice => "  new tanking created!" }
else
  redirect_to new_user_car_tanking_log_path ,:flash => { :notice => " sorry try again :(" }
end
end
def index
  @user = User.find(params[:user_id]) 
  @car = @user.cars.find(params[:car_id])    
  @tankinglog = @car.tanking_logs.all
end
end
如果你想看模特

class TankingLog < ActiveRecord::Base
belongs_to :gas_station 
belongs_to :car
attr_accessible :car_id, :cost, :date, :gallon, :gas_station_id, :km
validates_presence_of :cost, :date,:gallon,:km
validates_numericality_of :cost, :gallon
validates_numericality_of :km #:only_integer
end


class GasStation < ActiveRecord::Base
has_many :tanking_logs
attr_accessible :name
validates_presence_of :name
end
编辑以下内容:

<%= f.select("gas_station_id", GasStation.all.collect {|gs| [ gs.name, gs.id ] }, { :include_blank => true })%></div>

你能发布一些相关的代码吗?好的,请添加生成输入字段的表单代码,实际保存数据的操作代码,以及更新操作的日志