当如何,我们通过额外PARAMS除了ID的Rails 3 UJS:使用的link_to
#we want to pass in additional params as well
<%= link_to "bleh", like_path(answer), :add_param=>2 , :remote=>"true" ,:method=>:post %>
当如何,我们通过额外PARAMS除了ID的Rails 3 UJS:使用的link_to
#we want to pass in additional params as well
<%= link_to "bleh", like_path(answer), :add_param=>2 , :remote=>"true" ,:method=>:post %>
您可以通过在路径功能参数作为URL的一部分传递PARAMS。例如:
<%= link_to "bleh",
like_path(:answer_id => 123, :add_param => 2),
:remote=> true , :method=> :post %>
# would result in something like
# yourapp.com/like/aswer/3?add_param=2
但我认为在这种情况下,您需要远离纯粹基于资源的路径助手。检查documentation的想法。
如果你不想把参数到路径帮手 - 也许是因为有很多人或者你不知道他们在生成页面的时候 - 你也可以把它们放进data-params
属性。
例如:
link_to "Add to cart", cart_path,
data: { method: :post, remote: true, params: { product_id: 123 }.to_param }
生成的HTML看起来像这样:
<a data-params="product_id=123" data-remote="true" data-method="post"
href="/cart" rel="nofollow">Add to cart</a>
jQuery的UJS处理机附着一切从data-params
属性到POST请求体。
从概念上讲,首先使用路径帮助程序没有多大区别,但是如果要在Javascript中修改参数,此解决方案可能会产生更优雅的代码。
很好的答案!我正在寻找这样的东西。我知道Rails魔术师也会为此做些什么。你在哪里找到这个? – Jashwant 2013-12-20 08:05:52