Ben bir ReactJS (tepki raylar üzerinde) + Raylar uygulamasının bir parçasıyım. Ben ReactJS geliştiricisi değilim (henüz), ancak ReactJS seçildikten sonra projeye alındı.ReactJS + Raylar: HABTM öznitelikte değildir ve bu nedenle kaydedilemez
Sorunum, posta istekleri oluşturmak ve düzenlemek için React'tan Rails'e gönderilen parametrelerle ilgilidir. Bu durum için Benim modeller:
class Hrfile < ActiveRecord::Base
mount_uploader :attachment, AttachmentUploader
has_and_belongs_to_many :sras
...
end
class Sra < ActiveRecord::Base
...
has_and_belongs_to_many :hrfiles
...
validates :name, presence: {message: "Please input a name"}
end
ReactJS ben kullandım formları olarak Formsy-tepki ve tepki seçim Formsy haritalama gereksinimlerine kadar yaşamak için multiselect form olarak modifiye kullanır.
Aşağıdaki veri ReactJS gönderiliyoriçinden en Tepki .post ('/ SRA'lara') göndermek (veri):. Ben çözemiyorum
{
active:null
address:null
asset_id:null
assetother:null
brand_id:null
city:null
conclusion:"Test conclusion"
country_id:null
enddate:null
hrfile_ids:["2","1"]
indicator_deteroriation:null
ireport_ids:null
name:"Test assessment"
organisation_id:null
region_id:null
reviewdate:null
startdate:null
treatment:null
user_id:null
}
sorun/hata olduğunda ben ReactJS uygulaması yoluyla bir isim ve X sayısı Hrfiles içeren yeni bir Sra oluşturun ve JSON'u (yukarıda verildiği gibi) gönderin. Bu, Rails:
Started POST "/sras" for 127.0.0.1 at 2016-04-05 16:29:07 +0800
Processing by SrasController#create as JSON
Parameters: {"name"=>"Test assessment", "organisation_id"=>nil, "brand_id"=>nil, "user_id"=>nil, "asset_id"=>nil,
"startdate"=>nil, "reviewdate"=>nil, "address"=>nil, "city"=>nil, "region_id"=>nil, "country_id"=>nil, "assetother"=>nil, "enddate"=>nil, "active"=>nil, "treatment"=>nil,
"indicator_deteroriation"=>nil, "conclusion"=>"Test conclusion", "ireport_ids"=>nil, "hrfile_ids"=>["2","1"],
"sra"=>{"name"=>"Test assessment", "organisation_id"=>nil, "country_id"=>nil, "user_id"=>nil,
"startdate"=>nil, "enddate"=>nil, "reviewdate"=>nil, "active"=>nil, "city"=>nil, "address"=>nil, "asset_id"=>nil, "assetother"=>nil,
"indicator_deteroriation"=>nil, "conclusion"=>"Test conclusion", "brand_id"=>nil, "region_id"=>nil}}
tarafından alınır. ReactJS uygulaması, örn. "hrfile_ids" => ["2", "1"], ancak ParamsWrapper (şüpheliyim) 'hrfile_ids'i bir öznitelik olarak tanımaz ve bu nedenle isim yalnızca kaydedilir.
Burada neleri kaçırdığım hakkında bir fikrim var mı?
Başka bir kod bloğuna veya ayrıntıya ihtiyacınız varsa bildirin. 'Sra' nesne Rails params wrapper tarafından yaratıldı işaret ederek Jesper için
Teşekkür
DÜZENLEME - önceden :) Teşekkür yardımcı olabilir umuyoruz. Hrfiles'e sahip olmak için @ sra.hrfiles'i arayabileceğim iki model Sra ve Hrfile arasında bir ilişkim olsa da, JSON'a sarılmış hrfile_ids parametresini elde etmeyi hala anlayamıyorum.
sayesinde bu @thejspr için! Şu anda arayarak bir hack yapacağım: 'params.require (: sra) .merge (hrfile_ids: params [" hrfile_ids "])' SrasController # sras_params içinde :) – sstubben