2015-12-06 32 views
0

在view.html.erb,我想用这样的:点击时更新`link_to`助手;轨道4

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

我该怎么做?

+0

不确定,但onclick();可能会帮助你。就像你可以尝试使用javascript推送situation_id = 2的值。你有尝试过这种方式吗? – Abhinay

+0

谢谢你的回答Abhinay。我没有试图像你说的那样做。你怎么做呢?我很抱歉,我是一名初学者,英语初学者(对不起)。 – Joker

+0

由于您是新手,因此您可以阅读:http://meta.stackexchange.com/questions/10647/how-do-i-write-a-good-title/10648#10648。尽量写简短而翔实的问题标题。 – Abhinay

回答

0

如果一本书有情景关联(并且您的关联设置正确),那么您可以将它作为参数传递给<%= link_to'保留它',books_path(book,:situation_id => book.situation_id ),...%>

但是,您不应该将它传递给situation_id param,因为您可以使用您将要访问的book实例变量来获取它。换句话说,你可以做

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

和你的书将加载的情况,以及它会在你的书中显示视图中可用。

+1

不知道这是如何回答这个问题。听起来像OP想要将书的situation_id设置为2,一旦按钮被点击。 –

+0

是的,当我点击按钮时,我想将本书的situation_id更改为2(之前设置为1)。 Situation_id已经与Book正确关联。我没有成功做到这一点。谢谢您的回答 – Joker

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>