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)
이 문제를 해결할 수있는 방법에 대한 아이디어. 목표가 없다는 것을 알고 있습니다. 목표물, 나는 단지 어떻게 보이지 않습니다. 오류와 일치하는 줄 번호를하지 않고
해당 줄은 다음과 같습니다. @ group.projects.each do | p | p.position = params [ 'group_projects']. 색인 (p.id.to_s) +1 1 –
정확히 일치합니다. 그래서 제가 인용 한 줄에서'.index()'를하려고합니다. 어떤 이유로 'params ['group_projects ']'가 돌아 오지 않습니다. – Hober