7
Rails Routing Helpers (เช่น mymodel_path (model)) สามารถใช้ในแบบจำลองได้หรือไม่?
บอกว่าฉันมี Rails Model ชื่อ Thing สิ่งที่มีแอตทริบิวต์ URL ที่สามารถเลือกที่จะกำหนดให้อยู่ที่ไหนสักแห่ง URL บนอินเทอร์เน็ต ในมุมมองรหัสฉันต้องการตรรกะที่ทำต่อไปนี้: <% if thing.url.blank? %> <%= link_to('Text', thing_path(thing)) %> <% else %> <%= link_to('Text', thing.url) %> <% end %> ตรรกะตามเงื่อนไขนี้ในมุมมองน่าเกลียด แน่นอนฉันสามารถสร้างฟังก์ชันผู้ช่วยซึ่งจะเปลี่ยนมุมมองเป็น: <%= thing_link('Text', thing) %> นั่นแก้ปัญหาการฟุ่มเฟื่อย แต่ฉันชอบที่จะมีฟังก์ชั่นการใช้งานในรูปแบบของตัวเอง ในกรณีนี้รหัสการดูจะเป็น: <%= link_to('Text', thing.link) %> เห็นได้ชัดว่านี่จะต้องมีวิธีการเชื่อมโยงในรูปแบบ นี่คือสิ่งที่จะต้องมี: def link (self.url.blank?) ? thing_path(self) : …