2010-05-03 2 views
0

많은 프로젝트가있는 그룹이 있습니다. 쇼보기와 비슷한 주문보기도 만들었습니다. 추가보기를 만드는 이유는 내 사이트의 기본 디스플레이에 대해 그룹 # 쇼보기를 사용하고 있기 때문입니다.Ruby on Rails를 사용하여 정렬에 문제가 있고 목록의 역할을 수행했습니다.

그래서 나는 내 경로로 엉망이되지 않은

<ul id="group_projects"> 
    <% @group.projects.each do |p|%> 
<li class="project_<%= p.id %>"><%= p.title %> - <%= p.position %></li> 
    <% end -%> 

<%= sortable_element 'group_projects', :url => { :action => "sort", :id => @group }, :complete => visual_effect(:highlight, 'group_projects')%> 

내보기에

def order 
    @group = Group.find(params[:id]) 
end 

def sort 
    @group = Group.find(params[:id]) 
    @group.projects.each do |p| 
    p.position = params['group_projects'].index(p.id.to_s) + 1 
    p.save 
end 
render :nothing => true 
end 

그럼 내 Groups_Controller에 다음을 가지고,하지만 난 그게 궁금해 문제의 일부.

그래서 분류 작업은 작동하지만 위치를 저장하지 않습니다. 내가 얻는 오류는 다음과 같습니다.

Processing GroupsController#sort (for 127.0.0.1 at 2010-05-03 11:14:19) [POST] 
Parameters: {"authenticity_token"=>"vODeoGHH4osrDeBY+fBI/x+YgEs6SJBO15cF/qLqW5o=", "id"=>"1"} 
User Load (47.6ms) SELECT * FROM "users" WHERE ("users"."id" = 1) LIMIT 1 
Group Load (0.5ms) SELECT * FROM "groups" 
Group Load (0.2ms) SELECT * FROM "groups" WHERE ("groups"."id" = 1) 
Project Load (1.7ms) SELECT * FROM "projects" WHERE ("projects".group_id = 1) ORDER BY position 

NoMethodError (You have a nil object when you didn't expect it! 
You might have expected an instance of Array. 
The error occurred while evaluating nil.index): 
app/controllers/groups_controller.rb:136:in `sort' 
app/controllers/groups_controller.rb:135:in `sort' 

Rendered rescues/_trace (106.7ms) 
Rendered rescues/_request_and_response (1.2ms) 
Rendering rescues/layout (internal_server_error) 

이 문제를 해결할 수있는 방법에 대한 아이디어. 목표가 없다는 것을 알고 있습니다. 목표물, 나는 단지 어떻게 보이지 않습니다. 오류와 일치하는 줄 번호를하지 않고

답변

0

, 그것은 문제가 자리하고있는 곳

p.position = params['group_projects'].index(p.id.to_s) + 1 

이 선 것 같습니다. params['group_projects']은 어떤 이유로 든 되돌아오고 있습니다.

+0

해당 줄은 다음과 같습니다. @ group.projects.each do | p | p.position = params [ 'group_projects']. 색인 (p.id.to_s) +1 1 –

+0

정확히 일치합니다. 그래서 제가 인용 한 줄에서'.index()'를하려고합니다. 어떤 이유로 'params ['group_projects ']'가 돌아 오지 않습니다. – Hober

관련 문제