Yerleşik json nesnesinde gereksiz kök öğesinde sorun yaşıyorum. İşte temizlenmiş kaynaklar ise:ActiveSource sorgusundaki gömülü nesnelerde json kök öğesini devre dışı bırakma
Kullanıcı modeli:
{
"id":0,
"user_name":null,
"credit_card":
{"number":null}
}
Denetçi'nin eylemi:
def new
@user = User.build
@user.id = nil
end
User.build bana ertesi json veriyor 'yeni'
class User < ActiveResource::Base
self.format = :json
self.element_name = "user"
#...
end
Denetçi'nin eylem 'oluştur'
def create
@user = User.new(params[:user])
@user.save
end
Görünüm '_form.html.erb'
<%= form_for(@user) do |f| %>
<%= f.label :user_name %>
<%= f.text_field :user_name %>
<%= f.fields_for @user.credit_card do |cc_f| %>
<%= cc_f.label :number %>
<%= cc_f.text_field :number %>
<% end %>
<% end %>
Ben kullanıcı uygulama sonraki json göndermek saklıyorum:
{
"user"=>
{"credit_card"=>
{"credit_card"=>
{"number"=>"xxxxyyyyzzzzaaaa"}
},
"user_name"=>"test"
},
"api_client_key"=>"top_secret"
}
Sorun CREDIT_CARD anahtarları kopyalama içindedir. Bunu nasıl çözebilirim?
Final çözüm:
class User < ActiveResource::Base
self.include_root_in_json = false
self.format = :json
self.element_name = "user"
def to_json(options = {})
{
self.class.element_name => self.attributes
}.to_json(options)
end
# ...
end
sayesinde üst kök tutmak ve sadece ilişkili kredi kartı nesnenin kökünü çıkarmak gerekirse
neden questrion ActiveResource ile ilgili ise ActiveRecord? – Fivell
ActiveResource aynı parametrelere sahiptir. Ancak "kullanıcı" öğesini de kaldırır. –
Aşağıdaki isteklere ihtiyacım var: "{ " kullanıcı "=> {" kullanıcı_adı "=>" sınama "," credit_card "=> {" number "=>" ... "}}, " api_client_key "= > "top_secret" } ' Ama olsun ' { "user_name" => "test", "CREDIT_CARD" => { "numara" => "..."}, "api_client_key" = > "top_secret" } ' –