2014-06-07 40 views
1

具有读取我如何使用变量从链接

<a href="<%= user_collections_path(@user, :status => "Got") %>">Collection</a> 

一个链接,另一个读取

<a href="<%= user_collections_path(@user, :status => "Want") %>">Wantlist</a> 

它们链接到相同的看法,但产生不同的列表。 在该视图页面上,我希望能够根据它是否为收藏或愿望清单页面来更改文字。事情是这样的:

<% if :status == 'Got' %>collection<% elsif :status == 'Want' %>wantlist<% end %> 

显然,这不工作,但多次实验后,我无法工作,如何查询其地位在链路中传递。这可能吗?

回答

1

你应该做这样

<% if params[:status] == 'Got' %>Collection 

<% elsif params[:status] == 'Want' %>Wantlist 

<% end %> 
+0

啊,所以params是什么使它看起来在链接中传递的参数?谢谢谢谢。 – Ossie

+1

@WorldOfProper是的! “params”是你需要的魔法词。 – Pavan

0

传递给link_to获得投入params哈希的参数。在这里,params[:status]是你如何访问它,无论是在视图中还是在控制器中。

0

link_to_if可能是您的问题的替代解决方案。

link_to_if(params[:status] == 'got', "Collection", user_collections_path(@user)) do 
    link_to "Wantlist" user_collections_path(@user) 
end 
+0

他没问过!他希望如何在视图页面上改变'status'方面的'text'。 – Pavan

+0

是的,我会在任何时候都有这两个链接,因为他们是替代品。感谢您向我介绍like_to_if,但这非常方便。 – Ossie

+1

@Pavan我说**备用解决方案**以上,不是确切的解决方案。我建议再次检查我的答案。另外,不需要有一个exlamation标记。 – ekremkaraca