如何将id从link_to传递给本地人?

时间:2013-06-15 20:29:07

标签: ruby-on-rails-3 link-to locals

我将idlink_to传递给locals。但它无法找到结果,说cannot find article without id。我需要在模态中传递显示articles的ID。

<% @articles.each do |a|%>
<p>
    <%= link_to a.title, {"data-toggle" => "modal", "data-target" => '#myModal', :id => a.id}%>
</p>
<% end %>

<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria labelledby="myModalLabel" aria-hidden="true">
<%= render :partial => "site#show", :locals => {@article => Article.find(params[:id])}%>
</div>

在控制器中

def home
  @articles = Article.order("created_at DESC").limit(5)
  @videos = Video.order("created_at DESC").limit(5)
end

我从控制器获取id。这不是nill。 事情是我能够找到block中的文章,但无法将其发送给当地人。

2 个答案:

答案 0 :(得分:0)

这是因为params [:id]为null或者params [:id]的记录不存在

在控制器中,您应该找到具有特定ID的文章是否存在,如果不处理它

@article = Article.find(params[:id])

良好的做法是不在视图中使用查找器。

答案 1 :(得分:0)

确保params [:id]不是nil并且在传递locals时你应该总是使用符号并将它们作为局部变量访问局部变量 例如

     “site#show”,:locals =&gt; {:article =&gt; Article.find(PARAMS [:ID])}%GT;

在_show.html.erb

将其用作