我希望任何用户都可以编辑特定帖子的问题。我没有在这个页面上循环帖子,所以我必须将post_id硬连接为param。 这就是我试过的:
<%= link_to "Add a question", edit_post_path(@post[:id => 3]) %>
和
<%= link_to "Add a question", edit_post_path(@post.3) %>
和
..., edit_post_path(@post.params[:id == 3])
答案 0 :(得分:1)
Rails很棘手且很有帮助。将对象传递给posts_path
时,它所做的就是将ID从对象中拉出来。
因此,如果@post
中记录的ID为2,那么这三行都会做同样的事情:
posts_path(@post)
posts_path(@post.id)
posts_path(2)
答案 1 :(得分:0)
最后我尝试了这个并且它有效。我不知道它是否真的是Rails方式。
<%= link_to "Add a question", edit_post_path(@post=Post.find(3)) %>
感谢您的期待!
答案 2 :(得分:0)
您可以简单地将@post
传递到路径,前提是您的控制器已初始化@post
。
<%= link_to "Add a question", edit_post_path(@post) %>
<强>更新强>
如果您已定义@posts
,并且它包含所有帖子,并且您正在迭代它以显示各个帖子,并且我假设您正在执行此类操作
<% @posts.each do |post| %>
<div class="post">
<h3><%= post.title %></h3>
<p><%= post.body %></p>
<!-- You'll pass local post variable to it. to get the link -->
<%= link_to "Add a question", edit_post_path(post) %>
</div>
<% end %>
您仍然可以访问各个帖子及其ID。因此,您可以轻松创建用于向其添加新问题的链接。