2013-05-22 27 views
6

Tôi đang sử dụng Angularjs trong các phần của ứng dụng Rails, hoạt động tuyệt vời. Nhưng tôi tự hỏi làm thế nào để sử dụng một giá trị góc bên trong một link_to.Sử dụng biến số Góc trong Rails link_to

Đây là mã giả của tôi:

%table   
    %tr{"ng-repeat" => "book in books"} 
    %td 
     {{book.title}} 
    %td= link_to "Show", book_url({{book.id}}) 

này mang lại cho tôi một lỗi:

syntax error, unexpected '}', expecting tASSOC 

này cũng có thể có để làm với HAML gây ra lỗi, nhưng làm thế nào tôi có thể gửi ID trong link_to?

+0

Thay vì "link_to", tôi có thể sử dụng liên kết thông thường:% a {href: 'books/{{book.id}}'} 'Hiển thị' – John

Trả lời

2

Thay vì một "link_to", tôi có thể sử dụng tất nhiên một liên kết bình thường:

%a{href: 'books/{{book.id}}'} 'Show' 
+0

Câu trả lời được chấp nhận là -1 như thế nào? – Puce

0

Bạn không thể làm điều đó, tôi sợ. Tôi cũng nghĩ rằng Rails sẽ báo ID bạn vượt qua nó, nhưng nếu không, bạn luôn có thể sử dụng giá trị nguyên:

%td= link_to "Show", book_url('{{book.id}}') 
+0

Không, bạn không thể, sau đó bạn sẽ nhận được một liên kết như thế này: sách /% 7B% 7Bbook.id% 7D% 7D – John

+0

yeah, nghĩ vậy. sử dụng thuộc tính 'ng-bind' rồi. – Ven

4

này đã làm việc cho tôi:

<li ng-repeat="deal in deals"> 
    <%= link_to 'show,'#','ng-href' => "#{deals_path()}/{{deal.id}}" %> 
</li> 
+0

Sẽ không có gì sau khi # được coi là nhận xét và do đó không hoạt động? – Linus

+1

@Linus: no, số # nằm trong một chuỗi. – dwaynemac

+2

Ồ vâng, bạn hoàn toàn đúng, đó chỉ là Atom không thể hiển thị cú pháp chính xác. – Linus

0

Nó hoạt động tốt:

= link_to 'Show', URI::unescape(books_path('{{book._id}}')) 
Các vấn đề liên quan