현재 앱을 레일즈 4로 업그레이드 중입니다.이 앱을 몇 사람 만 설치할 예정이지만 필요성은 다릅니다. 이 업그레이드 버전을 사용하여 일부 모델을 엔진에 적용하기로 결정했습니다. 목표는 상황의 필요에 맞게 앱을 수정하는 시간을 줄이는 것입니다. 핵심 앱이 기본 리소스를 관리하고 엔진이 기능을 추가합니다 (앱은 소규모 조직의 회원 관리). "가이드"를 포함한 많은 설명서를 읽었습니다. 몇 가지 엔진을 테스트하여 앱의 동작을 확인했습니다. 여기에 내 질문에 내가 내 검색으로 대답 할 수 있습니다레일 모범 사례 - 엔진
1 - 이름 지정 규칙 :
어떻게 당신이 당신의 엔진의 이름을합니까? 첫 번째 시도는 함수로 이름을 짓는 것이었지만 첫 번째 모델을 생성 할 때 모델에 함수 이름을 사용할 수 없다는 것을 알았습니다.
나는 같은 생각이었다 Coreappname_functionality
나는 엔진이 지정됩니다 내 회원 활동을 추가 할 exemple에 대한: member_activities
2 - 내가 많이 읽어 탑재
대 전체 이 주제에 관해서는 많은 사람들이 탑재 가능한 엔진을 사용하는 것 같습니다. 둘 다 시도해 본다. 전체 옵션이 실제로 구현하는 것이 빠르다고 생각한다. (라우팅이없고, 네임 스페이스 격리가 없다는 것을 알고 있어야한다.) 그러나 클래스 충돌의 위험도 이해합니다. 내가이 앱의 코드를 작성하는 유일한 사람이라면 전체 엔진을 사용하는 것이 나쁜 습관이다 (이는 게으름 질문 일 뿐이다). 다른 앱에서 사용할 계획이 없다고하더라도 탑재 가능한 엔진의 다른 장점이 있습니까?
3 - "엔진이있는 경우?"
코어 앱 안에 모든 엔진에 필요한 코드를 넣을 것입니다. 예를 들어 사이드 바 내부에서 마지막 활동의 목록을 표시하려고하지만 활동 엔진이 사용되는 경우에만 표시하려고합니다. 목표는 핵심 애플리케이션 안에 필요한 모든 코드를 넣는 것이지만 엔진의 현재 상태에 따라이 코드를 사용하는 것입니다.
if defined? Activity
@activities = Activity.all
end
을하고이 같은 전망 뭔가 렌더링 : 내 테스트 기간 동안
내가 사용
<% if defined? Activity %>
<h3><%= @activities.first.title %></h3>
<% end %>
그것은 잘 일하고있어하지만 난 그게 좋은 방법입니다 모르겠어요합니다. 대안이 있습니까?
엔진의 세계로 뛰어 들기 전에 조언이 있습니까? 시도 후에 실수를 게시하는 대신 내 질문을 게시하는 것을 선호합니다! 그것을 읽는 사람을 위해
간단한 질문 : 엔진을 사용하면 여기에서 조정을 줄일 수 있다고 어떻게 생각합니까? – phoet
Hi Phoet, 실제로 앱을 설치하면 모든 기능을 사용할 수 있으며 사용되지 않는 부품을 삭제하는 데 시간을 소비합니다. 나는 엔진이 다른 부품의 유지 보수성을 향상시킬 수 있다고 생각한다. –