我的模型实例没有在我的控制器中创建

时间:2016-04-23 07:49:44

标签: ruby-on-rails ajax forms

我正致力于为用户注册能源使用(水,煤气,电力)的应用程序。用户可以拥有多个房屋,每个房屋可以有更多的用途(第1年,第2年,第3年)。

在我的用户详细信息页面上,我有一个'标签'对于每个家庭,在此选项卡中还有一个用于添加新用法的按钮。

我正在尝试打开这个新用途的'形式在一个模态中,通过remote =>真正。此按钮为请求添加两个参数:use_year和:home_id。

在我的控制器中使用/ new我正在创建一个新的使用实例' @ use'并尝试通过赋值将两个url参数传递给相应的属性。

这只是不起作用。我不知道自己做错了什么,但是我无法为这个@use新实例的属性赋值。试图在rails控制台中执行此操作,并且工作正常。我做错了什么?

usescontroller.rb

def new
  myparams = use_new_params
  use_year = myparams[:use_year].to_i
  home_id = myparams[:home_id].to_i

  @use = Use.new do |u|
    u.use_year = 2016 #use_year
    u.home_id = 25 # home_id
  end

  @home = Home.find(home_id)

    respond_to do |format|
        format.html
        format.js 
    end 
end



private

def use_new_params
  params.require(:usage).permit(:use_year,:home_id)
end

这是按钮

的部分

View.html.erb

<%= link_to 
    "+ usage ",
    new_use_path(:usage => {:home_id => home.id, :use_year => 2016 }),
    :class => 'btn btn-primary pull-xs-right', 
    :remote => true %>

这是我的使用模式

Use.rb

# == Schema Information
#
# Table name: uses
#
#  id          :integer          not null, primary key
#  use_year    :integer
#  gas_1       :float
#  gas_1_sum   :float
#  gas_2       :float
#  gas_2_sum   :float
#  water_1     :float
#  water_1_sum :float
#  water_2     :float
#  water_2_sum :float
#  elec_1      :float
#  elec_1_sum  :float
#  elec_2      :float
#  elec_2_sum  :float
#  extra_info  :string
#  created_at  :datetime         not null
#  updated_at  :datetime         not null
#

class Use < ActiveRecord::Base

  belongs_to :home

end

我的日志文件:

Started GET "/uses/new?usage%5Bhome_id%5D=24&usage%5Buse_year%5D=2016" for 127.0.0.1 at 2016-04-23 10:52:18 +0200
Processing by UsesController#new as JS
  Parameters: {"usage"=>{"home_id"=>"24", "use_year"=>"2016"}}
  Person Load (0.7ms)  SELECT  "people".* FROM "people" WHERE "people"."id" = $1  ORDER BY "people"."id" ASC LIMIT 1  [["id", 1]]
  Home Load (0.3ms)  SELECT  "homes".* FROM "homes" WHERE "homes"."id" = $1 LIMIT 1  [["id", 24]]
  Rendered uses/_errors.html.erb (3.2ms)
  Rendered uses/_useForm.html.erb (454.1ms)
  Rendered uses/new.js.erb (456.2ms)
Completed 200 OK in 480ms (Views: 462.3ms | ActiveRecord: 2.1ms)

enter image description here

这是我的IDE的截图。 use_year的属性值应该有一个值,但是为零。

1 个答案:

答案 0 :(得分:0)

感谢弗雷德里克的评论,发现这不是问题所在。

谢谢!