如何传递数据库ID到Rails URL路径
How to pass database ID to Rails URL path
所以我有一个下拉菜单,它包含所有的标题从我创建的数据库。无论我选择了什么标题,我都试图将其数值(ID)从数据库传递到URL路径参数。
这是到目前为止我在index.erb.html文件中得到的内容
<%= button_to "SHOW", show_articles_link(*Enter ID Parameter*), :method => 'get' %>
在我的ArticlesController文件中,我写了
def show
@article = Article.find(params[:id])
end
我不确定如何将其ID值传递给该参数。我想过使用像
这样的JavaScriptvar id = document.getElementById('articles').value;
但是我不完全确定如何将这个变量传递给参数。
还有别的方法吗?任何帮助都会很感激。谢谢!
假设您在索引页上显示这个<%= button_to "SHOW", show_articles_link(*Enter ID Parameter*), :method => 'get' %>
按钮。
所以在索引页上你必须有像@articles这样的变量你要像
<% @articles.each do |article| %>
<%= button_to "SHOW", show_articles_link(article.id), :method => :get
<% end %>
你有两种不同的方法来解决这个问题:
- 使用表单&提交
将下拉菜单和按钮封装在表单中。表单应该使用GET方法指向show action URL。下拉菜单应该是一个元素id为"id"的选择(你想传递给show方法的参数的名称)。按钮应该触发表单的提交。假设您的文章属于@articles
,并且每篇文章都有一个id
和一个title
:
<%= form_tag show_articles_link, method: :get do -%>
<%= select_tag :id, options_from_collection_for_select(@articles, "id", "title") %>
<%= submit_tag "SHOW" %>
<% end -%>
- 使用javascript
将下拉菜单的"change"事件绑定到一个函数,该函数使用所选文章的(数据库)id更新/重写按钮的"href"属性。将按钮的默认href设置为下拉列表中默认选择的文章的href。使用jQuery让事情变得更简单:
在你看来:
<%= select_tag :articles, options_from_collection_for_select(@articles, "id", "title") %>
<%= link_to "SHOW", show_articles_link(id: @articles.first.id), id: "myButton", class: "btn" %>
在您的视图中(使用<script>
标签)或在单独的javascript资源中:
$(document).on "change", "#articles", function() {
$("#myButton").attr("href") = "/article/" + $(this).val();
};
重要:你可能需要编辑javascript来反映你的显示文章路由是如何定义的。在上面的javascript代码中,假设路由被定义为'/article/:id'
。
相关文章:
- Rails Google maps javascript api v3 setIcon() url 無法定位圖片
- 阻止Rails 4转换src-url
- 如何在 JavaScript 中设置 Rails 背景图像 URL
- Rails 使用咖啡从 url 访问当前的 GET 页面参数
- rails在javascript url中添加对象
- Rails,通过Javascript将id发送到URL
- javascript/jquery中的相对url &rails 3
- 如何传递数据库ID到Rails URL路径
- 访问Rails资源,忽略URL中的区域设置范围
- 插入'#'在rails url中
- 当我试图通过rails插入URL时,window.replace方法在js中不起作用
- Ruby on rails在link_to url参数中添加javascript变量
- 使用Rails 3.1资产管道的JavaScript代码中的图像URL
- 多个URL参数和rails/backbone.js
- React JS with Rails -通过URL访问JSON数据
- 如何在rails中单击URL时弹出一个面板
- 使当前URL中的链接CSS不同(Ruby on Rails)
- Rails 4远程真实表单请求(用于ajax加载器),更新浏览器url
- 骨干网/rails之间使用REST url通信有问题
- 在Rails 4应用程序的URL中传递JavaScript变量,这样我就可以在控制器中使用它了