2013-11-19 3 views
0

У меня есть link_to_function работает правильно в моих рельсах приложении, но я попробовал оборачивать его вокруг какого-рубинового кода с помощью «делать», и это не выполнение кода он обернут вокруг:рельсов link_to_function в сделай

<li class="comment-list-item" id="<%=comment.id%>"> 
<%= link_to_function "test", "goToStepComment('#{step.id}', '#{comment.id}')" do %> 
    <div class="comment-list-image"> 
     <% if User.find(comment.user_id).avatar_url != nil %> 
       <%= image_tag(User.find(comment.user_id).avatar_url(:thumb), :class=>"commentAvatar img-polaroid") %> 
     <% else %> 
       <%= image_tag("default_avatar.png", :class=>"commentAvatar img-polaroid") %> 
     <% end %> 
    </div> 
    <div class="comment-list-title"> 
      <p><%= truncate(User.find(comment.user_id).username, length: 13) %> commented on <%= truncate(step.name, length: 20) %>: "<%=truncate(comment.body)%>"</p> 
    </div> 
<% end %> 
</li> 

Это визуализируется как:

<li class="comment-list-item" id="40" style="display: list-item;"> 
    <a href="#" onclick="goToStepComment('114', '40'); return false;">test</a>  
</li> 

Как обернуть вокруг link_to_function рубинового кода?

+0

link_to_function имеет мутную историю со многими решениями относительно устаревания или устаревания. В результате это действительно зависит от того, какая версия вы используете, существует ли она и принимает ли она блок. Какую версию рельсов вы используете? – trh

+0

Я бегу Rails 3.2.15 – scientiffic

ответ

0
<p><%= truncate(User.find(comment.user_id).username, length: 13) %> commented on <%= truncate(step.name, length: 20) %>: "<%=truncate(comment.body)%>" 

В приведенном выше коде, который вы использовали, почему последняя часть, <% = усечение (comment.body)%> обертывают вокруг двойных кавычках. Я попробовал то же самое с примером кода, как показано ниже.

<li class="comment-list-item" id="1"> 
<%= link_to_function "test", "goToStepComment('12', '1222')" do %> 
    <div class="comment-list-image"> 
    <p>Something</p> 
    </div> 
    <div class="comment-list-title"> 
      <p>FooBar</p> 
    </div> 
<% end %> 
</li> 

Это произведено ниже с учетом содержания html.

<li id="1" class="comment-list-item"> 
    <a onclick="goToStepComment('12', '1222'); return false;" href="#">test</a> 
</li> 

Я думаю, что ошибка будет вытекающей из двойных кавычек, которые вы дали в коде, указанном в верхней части.

+0

благодарю вас за помощь. Я удалил двойные кавычки, но это не решило проблему. Похоже, что в вашем примере выше вы также не смогли обернуть «Кое-что» и «Foobar» в ваш выходной HTML-код, верно? – scientiffic

+1

Да. Я не мог обернуть эти вещи. И, к сожалению, я не заметил это как link_to_function. Вместо использования link_to_function вы можете использовать link_to. Событие click, которое вы могли бы прикрепить обработчиком javascript. Я нашел некоторую суету, используя метод link_to_function в сообществе rails, и каждый нажал, чтобы использовать нормальный link_to с обработчиком событий. Попробуй тоже. –

0

Я избавился от link_to_function и закончил тем, что просто вызвал функцию goToStepComment, когда пользователь нажимает на элемент li.