** 업데이트 : 사실 꽤 좋은 이유가 있습니다. 사용자에게 링크를 보내는 알림 클래스가 있습니다. 그래서 프런트 엔드와 동일한 라우팅 이유 때문에 URL 정보가 필요합니다.)모델에서 "경로"정보 받기
모델에있을 때 "경로"경로를 얻으려면 어떻게해야합니까?
users_path(xxx)
app.users_path(xxx)
이 모두
이** 업데이트 : 사실 꽤 좋은 이유가 있습니다. 사용자에게 링크를 보내는 알림 클래스가 있습니다. 그래서 프런트 엔드와 동일한 라우팅 이유 때문에 URL 정보가 필요합니다.)모델에서 "경로"정보 받기
모델에있을 때 "경로"경로를 얻으려면 어떻게해야합니까?
users_path(xxx)
app.users_path(xxx)
이 모두
이나는 대부분의 경우이를 피해야하고 종종 더 좋은 방법이 있다는 데 동의하지만, 이 결코이 아닐 것이라고 말하기는 매우 간단합니다. 실제로 이것이 완벽하게 받아 들일 수있는 상황이 많이 있습니다 (예 : 사이트의 개체 페이지에 대한 링크가 필요한 CSV 보고서 생성).
어떤 경우이든 레일스는 이것을 매우 쉽게 만듭니다. 먼저해야 할 일이 적절한 것인지 생각해 봤는지 확인하십시오! 수업에 Rails URL 도우미를 포함 시키십시오.
include Rails.application.routes.url_helpers
컨트롤러/뷰와 관련된 액션을 csv로 생성하지 않을 것입니다. xml과 비슷하지만 모델 메소드에있을 필요는 없습니다. –
필수 사항은 아닙니다. 그것은 당신이 그것을 사용하는 것에 달려 있습니다. 때로는 모델이나 완전히 다른 클래스에서 사물을 생성하는 것이 더 적절합니다. 한 무리의 사람들에게 매일 이메일로 전송되는 csv 파일을 생성하고 싶다고 가정 해 봅시다. 생성하는 가장 좋은 방법은보기를 작성하고보기를 호출하여 첨부 할 수 있도록 파일에 저장하는 것입니다. 그것? Rails가 액션 컨트롤러 외부에있는 URL 헬퍼를 쉽게 포함 할 수있게하는 이유입니다. – idlefingers
나는 당신이 말하는 것을 부정하지 않습니다. 나는 모델에서 그렇게하는 것이 일반적으로 매우 나쁜 생각이라고 말하고있다. 기본적으로 뷰어 도우미를 사용하여 이러한 문제의 대부분을 보았던 MVC의 전체 개념에 대해 일종의 꽁꽁 엉켜 버립니다. 이 경우, 우리는 그것이 이루어져야한다고 말하기에 충분한 정보가 없기 때문에 .. :) –
나쁜 생각 그게 전부 실패, 당신은에이 모델의 내부 라우팅 정보를 필요가 없어야합니다.
분명히 잘못된 것이 있습니다. 모델 내부의 물건 대신 헬퍼를 사용해보십시오.
또는 문제에 대한 자세한 정보를 제공 할 수 있으며 확실한 대답을 드릴 수 있습니다.
업데이트 - 사용자에게 전자 메일을 보내고 있다고 가정하면 모델에서 수행하는 대신 메일러보기에서 URL 도우미를 직접 사용할 수 있습니다. user_path (xxx) 대신 user_url (xxx)을 사용하십시오. 이를 위해 action_mailer.default_url_options [: host]를 설정해야 할 수도 있습니다.
이유가 =)로 업데이트 –
대답을 –
업데이트하지, 나는 조랑말을 사용하고 있습니다. 그래서 나는 idlefinger의 제안을 고수 할 것입니다. –
더 나은 질문은 무엇이라고 생각합니까? – sevenseacat