2017-10-04 13 views
1

레일즈 3.x와 ActiveAdmin 0.6.6에서 잘 돌아가는 레일즈 앱이 있습니다. 그러나 레일 5와 ActiveAdmin 1.x로 업그레이드하고 싶습니다. 먼저 3.x에서 4.x로 업그레이드하고 5x로 업그레이드하는 업그레이드 프로세스를 시작했습니다. ActiveAdmin을 사용하여 1.0.0으로 테스트 했으므로 이제 Github에서 마스터를 사용하고 있습니다.부분적인 부분이 제대로 렌더링되지 않습니다.

레일즈 버전과 액티브 어드민은 모두 잘 작동했지만 부분적으로는 ActiveAdmin 양식입니다.

나는 그 부분 views/admin/menus/_form.html.erb을 가진 파일 app/admin/menu.rb 있습니다

문제는 다음과 같다. 부분은 메뉴의 양식을 포함합니다.

<%= semantic_form_for [:admin, @menu], builder: ActiveAdmin::FormBuilder do |f| %> 
    <% f.inputs 'Campos Menu' do %> 
    <% f.input :project if current_admin_user.admin? %> 
    <% f.input :title %> 
    <% f.input :title_en %> 
    <% f.input :item %> 
    <% f.input :icon, as: :file %> 
    <% end %> 
    <% f.inputs 'Submenus' do %> 
    <% f.has_many :submenus, heading: '' do |fa| %> 
     <% fa.input :title, as: :string %> 
     <% fa.input :title_en, as: :string %> 
     <% fa.input :kind, as: :select, collection: Submenu.kind_collection %> 
     <% fa.input :items_as, as: :select, collection: Submenu.items_as_collection %> 
    <% end %> 
    <% end %> 
    <% f.actions do %> 
    <% f.action :submit %> 
    <% end %> 
<% end %> 

이 파일의 렌더링 결과는이 경우 '제출'버튼으로 만 '행동'버튼입니다 :

는 부분 ( views/admin/menus/_form.html.erb)의 내용입니다. 흥미로운 점은 부분에서 <% f.actions do %>...을 제거하면 나중을 제거하면 <% f.inputs 'Submenus' do %>이 렌더링되고 동일하게 렌더링된다는 것입니다. 다른 블록에서는 end을 포함하는 마지막 블록에서 렌더링됩니다.

Rails 4.x 및 5.x에서도 동일한 동작이 관찰됩니다 (테스트하지 않은 Rails 5.1.x 제외).

부분에서 app/admin/menu.rb으로 양식을 이동하면 올바르게 렌더링됩니다. 이것은 나를위한 해결책이 될 수 있지만 프론트 엔드에서 필드 조작 및 기타 작업을 위해 JQuery를 사용하는 다른 양식이 있습니다.

이전에 말했듯이이 모든 폼 부분은 Rails 3.x 및 ActiveAdmin 0.6.6에서 제대로 작동하고있었습니다.

누구에게 무슨 문제가 있는지 알고 있습니까?

면책 조항 : 저는 레일스 또는 ActiveAdmin 전문가가 아니므로이 문제와 관련된 바보 같은 실수는 저와 함께 감내하십시오.

답변

0

내가 찾은 해결책은 부분적으로 <% f.input(s) %>=을 넣는 것입니다. 이런 식으로 <% f.inputs ... %> 대신 <%= f.inputs ... %>을 사용하면 문제가 해결됩니다.

1

네, 그게 activeadmin#3486입니다. 해결 방법을 알아 냈기 때문에 기쁩니다. this Arbre branch이 문제를 해결하면 궁금합니다. 사람들이 업그레이드하는 것을 보니 다행이라면, 내가 도울 수있는 일을 할 것입니다.

+0

안녕하세요, 내 프로젝트에서 제안 된 지점을 테스트하는 방법은 무엇입니까? 내 GemFile에 어떻게 지정합니까? 어쨌든, 내 문제에 대한 해결책을 찾았지만 폼 구성 요소를 사용할 수있는 방법이 맞는지 잘 모르겠다. 그래서 내가했던 일은'''''을''' 즉,'''<% = f.inputs : name => '캄포스 메뉴'do %>'''와 같은 선언을 사용합니다. 누락 된'''''''이 양식이 제대로 렌더링되지 못하게하는 것 같습니다. 이것이 적절한 해결책인지 또는 다른 문제로 이어질 것인지 아십니까? – avaz

+1

'gem 'arbre', git : 'https://github.com/varyonic/arbre.git', 브랜치 : '46_rails_tag_helper_with_block_in_arbre_template'' –

+1

개인적으로 나는 흐름으로 가고 .erb 대신에 .arb partials를' active_admin_form_for 리소스 do | f | ... ' –