Rails 3 link_to部分结构

时间:2011-10-17 05:30:47

标签: ruby-on-rails-3 partial-views

我想创建一个link_to渲染:partial。我已经在视图文件夹中存储了两个部分,我在其中调用link_to(这是配置文件视图)。下一步是让JavaScript加载数据,但我无法正确构建link_to

这就是我所拥有的:

<ul id="infoContainer">
  <li><%= link_to render(:partial => "about") do %>About<% end %></li>
  <li><%= link_to render(:partial => "other") do %>Other<% end %></li>
</ul>

使用这些,我的show.html.erb中呈现的部分内容都消失了。

所以我尝试了以下内容:

<ul id="infoContainer">
  <li><%= link_to render(:partial => 'about'), :class => "a", :remote => true do %>About<% end %></li>
  <li><%= link_to render(:partial => 'other'), :class => "o", :remote => true do %>Other<% end %></li>
</ul>

两个部分仍显示,“关于”/“其他”文字链接仍未显示。

更新:所以我可能有link_to工作。它只是没有呈现任何东西。我必须用JavaScript来解决这个问题。

<li><%= link_to "About", (:partial => 'about'}, {:class => "a"}, :remote => true %></li>
<li><%= link_to "Other", (:partial => 'other'}, {:class => "o"}, :remote => true %></li>

使用上面的link_to制作网址:/profiles/1?partial=about

2 个答案:

答案 0 :(得分:3)

您错误地使用了link_to - 请查看API / docs

它被称为:

link_to(body, url, html_options = {})
  # url is a String; you can use URL helpers like
  # posts_path

link_to(body, url_options = {}, html_options = {})
  # url_options, except :confirm or :method,
  # is passed to url_for

link_to(options = {}, html_options = {}) do
  # name
end

link_to(url, html_options = {}) do
  # name
end

请参阅:

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to

或许:

link_to syntax with rails3 (link_to_remote) and basic javascript not working in a rails3 app?

答案 1 :(得分:0)

<ul id="infoContainer">
  <li><%= link_to render(:partial => 'about'), urlyouwant %></li>
  <li><%= link_to render(:partial => 'other'), urlyouwant %></li>
</ul>

如果您想在用户点击时运行javascript,可以在http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html#method-i-link_to_function

上阅读更多内容
<ul id="infoContainer">
  <li><%= link_to_function render(:partial => 'about'), "alert('About!')" %></li>
  <li><%= link_to_function render(:partial => 'other'), "alert('Other!')" %></li>
</ul>