【问题标题】:How to pass id from link_to to locals?如何将 id 从 link_to 传递给本地人?
【发布时间】:2013-06-15 20:29:07
【问题描述】:

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

<% @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。这不是零。 问题是我可以在block 中找到文章,但无法将其发送给当地人。

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我已经更新了控制器代码。我认为语法有问题。
    【解决方案2】:

    确保 params[:id] 不是 nil 并且在传递局部变量时,您应该始终使用符号并将它们作为局部变量中的局部变量访问 例如

    "site#show", :locals => { :article => Article.find(params[:id])}%>

    在_show.html.erb中

    把它当作

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多