单击时更新`link_to`帮助器; Rails 4

时间:2015-12-06 16:08:25

标签: ruby-on-rails-4 link-to

在view.html.erb中,我想使用类似:

的内容
  <tbody>
    <% @books.each do |book| %>
      <tr>
        <td><%= book.title %></td>
        <td><%= book.author %></td>
        <td><%= link_to 'Show', book, class: 'btn btn-mini btn-primary' %></td>
        <td><%= link_to 'Edit', edit_book_path(book), class: 'btn btn-default' %></td>
        <td><%= link_to 'Destroy', book, method: :delete, data: { confirm: 'Are you sure?' }, class: 'btn btn-mini btn-danger' %></td>
        <td><%= link_to 'Reserve it', books_path(book, :situation_id => 2), class: "btn btn-mini btn-success" %></td>
      </tr>
    <% end %>
  </tbody>

当我点击按钮&#34;保留它&#34;时,我希望该字段&#34; situation_id&#34;这本书等于2。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

如果一本书有情境关联(并且您的关联设置正确),那么您可以将其作为参数传递给&lt;%= link_to&#39;保留它&#39;,books_path(book,:situation_id) =&gt; book.situation_id),...%&gt;

但是,你不应该把它传递给situation_id param,因为你可以使用你要去的书籍实例变量来获取它。换句话说,你可以做到

def show
  @book = Book.find(params[:id]).include(:situation)
end

并且您的图书也会加载情况,并且会在您的图书展示视图中显示。

答案 1 :(得分:0)

不是Rails解决方案,但我希望这会帮助您思考正确的方向。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("#link").click(function(){
$("a").attr("href", function(i, href) {
  return href + 'books/?situation_id=2';
});
    });
});
</script>
</head>
<body>
<a href="" id="link" >hello</a>
</body>
</html>