2013-08-30 7 views
0

현재 대규모 엔진 세트로 레일스 애플리케이션을 개발 중입니다.레일스 link_to 동적 변수 (데이터베이스에서 읽음) 경로

데이터베이스에 저장된 엔진 루트 경로의 일부 경로가 있습니다.

그러나 데이터베이스의 값 ('root_path'- 필드에 저장 됨)과 뷰의 link_to 도우미를 사용하여 연결하려고하면 올바른 링크가 표시되지 않습니다. 내가

http://localhost:3000/current_engine/foo_engine.bar_path 

미리

에 감사 얻을

http://localhost:3000/foo_engine.bar_path 

: 여기

은 예입니다

- @engines.each do |engine| 
    = link_to engine.name, engine.root_path 

대신을 (데이터베이스의 root_path 현재 foo_engine.bar_path이라고 가정)

+1

터미널에서 '레이크 루트'를 수행하고 결과를 게시 할 수 있습니까? –

+0

감사합니다! 문제는 다른 엔진으로 라우팅하고 엔진 경로가 데이터베이스에 저장된다는 것입니다. – pmuens

+0

문제가 해결되어 기쁘다! –

답변

1

좋아, 나는 이것을위한 해결책을 발견했다.

그냥

- @engines.each do |engine| 
    = link_to engine.name, eval(engine.root_path) 

를 사용하지만 평가는 악이다. 다른 방법이 있습니까?

+0

나는이'eval'의 사용이 안전하다고 생각합니다. 사용자가 제출 한 콘텐츠에 대해 'eval'을 사용하지 않습니다. 시도해 봤어''/ # {engine.root_path} "' –

+0

코멘트 해 주셔서 감사합니다! 방금 당신의 제안을 시도했습니다. "#/{engine.root_path}". 불행히도 도우미 - 메서드에서 URL get 로의 변환이 트리거되지 않았기 때문에 작동하지 않습니다. – pmuens

+1

@pmuens 감사합니다! eval은 내 요구에 완벽하게 부합합니다 .-D –

관련 문제