我正致力于为用户注册能源使用(水,煤气,电力)的应用程序。用户可以拥有多个房屋,每个房屋可以有更多的用途(第1年,第2年,第3年)。
在我的用户详细信息页面上,我有一个'标签'对于每个家庭,在此选项卡中还有一个用于添加新用法的按钮。
我正在尝试打开这个新用途的'形式在一个模态中,通过remote =>真正。此按钮为请求添加两个参数:use_year和:home_id。
在我的控制器中使用/ new我正在创建一个新的使用实例' @ use'并尝试通过赋值将两个url参数传递给相应的属性。
这只是不起作用。我不知道自己做错了什么,但是我无法为这个@use新实例的属性赋值。试图在rails控制台中执行此操作,并且工作正常。我做错了什么?
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
这是按钮
的部分<%= link_to
"+ usage ",
new_use_path(:usage => {:home_id => home.id, :use_year => 2016 }),
:class => 'btn btn-primary pull-xs-right',
:remote => true %>
这是我的使用模式
# == 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)
这是我的IDE的截图。 use_year的属性值应该有一个值,但是为零。
答案 0 :(得分:0)
感谢弗雷德里克的评论,发现这不是问题所在。
谢谢!