2013-10-25 10 views
1

내가 RoR에 작성, 내 클라이언트 응용 프로그램에서, I 포함, 프로젝트 회원을 유지하고 갱신하기 위해 REST API를 통해 사용자 레드 마인에 노력하고있어 다음 ' redmine_project '모델은 다음 표창의 첫 번째 부분이 제대로 레드 마인에 의해 처리Rails ActiveResource :: Base 또는 Redmine 오류가 발생 했습니까? 이를 위해 <a href="http://www.redmine.org/projects/redmine/wiki/Rest_Memberships" rel="nofollow">http://www.redmine.org/projects/redmine/wiki/Rest_Memberships</a></p> <p>에 설명 된대로

RedmineProject.find(4).post(:memberships,:user_id => 12, :role_ids => [4]) 

:

class RedmineProject < ActiveResource::Base 
    self.site ='http://localhost:3001' 
    self.format = :json 
    self.user = 'admin' 
    self.password = 'admin' 
    self.element_name = 'project' 
    self.collection_name = 'projects' 

end 

그런 다음 내 콘솔에서, 나는 다음과 같은 명령을 사용하여, 새로운 회원을 포함하기 위해 노력하고있어 (AC 난 그냥 RedmineProject.find을 시도하는 경우 tually, (4) 나는 (내가

.post와 새로운 회원을 게시 할 수 없습니다 해요 내 프로젝트 데이터와 JSON)하지만 .. 을받을 수 있나요 : 회원, : USER_ID => 12 : role_ids => [4]) 여기서

내 애플리케이션 콘솔의 결과이다 :

ActiveResource::ServerError: Failed. Response code = 500. Response message = Internal Server Error . 
    from /home/marc/.rvm/gems/ruby-1.9.3-p448/gems/activeresource-3.2.13/lib/active_resource/connection.rb:148:in `handle_response' 

여기에 레드 마인 단말기의 결과이다 :

Started POST "/projects/4/memberships.json?role_ids%5B%5D=4&user_id=12" for 127.0.0.1 at 2013-10-24 21:32:41 +0200 
Processing by MembersController#create as JSON 
    Parameters: {"project"=>{"created_on"=>"2013-10-23T00:58:15Z", "description"=>"azfazfazf zaf azffza", "homepage"=>"", "id"=>4, "identifier"=>"team-35", "name"=>"azfazf", "updated_on"=>"2013-10-23T00:58:15Z"}, "role_ids"=>["4"], "user_id"=>"12", "project_id"=>"4"} 
WARNING: Can't verify CSRF token authenticity 
    (0.6ms) SELECT MAX(`settings`.`updated_on`) AS max_id FROM `settings` 
    User Load (0.9ms) SELECT `users`.* FROM `users` WHERE `users`.`type` IN ('User', 'AnonymousUser') AND `users`.`login` = 'admin' 
    SQL (95.6ms) UPDATE `users` SET `last_login_on` = '2013-10-24 21:32:41' WHERE `users`.`type` IN ('User', 'AnonymousUser') AND `users`.`id` = 1 
    Current user: admin (id=1) 
    Project Load (0.4ms) SELECT `projects`.* FROM `projects` WHERE `projects`.`id` = 4 LIMIT 1 
    EnabledModule Load (0.4ms) SELECT name FROM `enabled_modules` WHERE `enabled_modules`.`project_id` = 4 
Completed 500 Internal Server Error in 127ms 

NoMethodError (undefined method `valid?' for nil:NilClass): 
    app/controllers/members_controller.rb:70:in `block (2 levels) in create' 
    app/controllers/members_controller.rb:65:in `create' 

내 코드에 문제가 있습니까? 또는 (있을 법하지 않은) 버그입니까?

답변

0

난 당신이 오류가 나는 members가 빈 배열임을 알 제기 된 place에서 보면 레드 마인 방법론을

를 사용하는 가정을! 내가 params[:membership]가 비어 있다고 가정 할 수 members을 만드는 과정을 보면, 로그 참조하십시오 membership로 포장 매개 변수를 보내는 변경

{"project"=>{"created_on"=>"2013-10-23T00:58:15Z", "description"=>"azfazfazf zaf azffza", "homepage"=>"", "id"=>4, "identifier"=>"team-35", "name"=>"azfazf", "updated_on"=>"2013-10-23T00:58:15Z"}, "role_ids"=>["4"], "user_id"=>"12", "project_id"=>"4"} 

시도합니다. 이 같은 뭔가 내가이

.post(:memberships,:membership => {:user_id => 12, :role_ids => [4]}) 
+0

안녕하세요, 감사 헬프 @gotva을위한 부지를 작동합니다 생각 document

{ "membership": { "user_id": 27, "role_ids": [ 2 ] } } 

에 설명 된, 유일한 것은 내가 PARAM에 포함시킬 필요가 있다는 것입니다 (S)없이 멤버십, 따라서 우리는 가지고 '.post (: 구성원 : 회원 => {USER_ID => 12 : role_ids => [4]})' 감사 많이, I 너없이 그것을 만들 수 없었다 :) –