【问题标题】:update `link_to` helper when clicked; Rails 4点击时更新 `link_to` 助手;导轨 4
【发布时间】:2015-12-06 16:08:25
【问题描述】:

在 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>

当我点击“预约”按钮时,我希望这本书的“situation_id”字段等于2。

我该怎么做?

【问题讨论】:

  • 不确定但 onclick();可能会帮助你。就像您可以尝试使用javascript推送situation_id = 2的值一样。您是否已经尝试过这样做?
  • 感谢您的回答 Abhinay。我没有尝试像你说的那样做。你怎么做呢?对不起,我是 Rails 的初学者和英语的初学者(对不起)。
  • 既然您是新手,请阅读以下内容:meta.stackexchange.com/questions/10647/…。尝试写出简短但内容丰富的问题​​标题。

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


【解决方案1】:

如果一本书有情境关联(并且您的关联设置正确),那么您可以将其作为参数传递 book.situation_id) , ... %>

但是,您不需要将 status_id 参数传递给它,因为您可以使用您将要使用的 book 实例变量来获取它。换句话说,你可以这样做

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

您的图书也会加载该情况,并且可以在您的图书展示视图中使用。

【讨论】:

  • 不确定这如何回答这个问题。听起来 OP 想要在单击按钮后将书的 status_id 设置为 2。
  • 是的,当我点击按钮时,我想将书的 status_id 更改为 2(之前设置为 1)。 Situation_id 已正确关联到 Book。我没有成功做到这一点。谢谢你的回答
【解决方案2】:

不是 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>

【讨论】:

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