从Rails中的集合返回选定的值并将其发送到URL

时间:2015-10-22 13:52:52

标签: javascript jquery ruby-on-rails ruby ruby-on-rails-3

所以我有一个标记为@joe的数据库集合,我试图将id变量传递给链接URL路径。这是在我的index.erb.html文件中。

<%= select_tag "article", options_from_collection_for_select(@joe, 'id', 'title'), 
prompt: "Select Something" %>

在我的articles_controller.rb文件中,我有

  def index
    @joe = Article.all
  end

我创建了一个循环,它抓取每个id号并将其传递到article_url路径。我想知道,在我上面创建的下拉框中,当我选择某个值时,我想将该值传递给article.id变量。我遇到了这个问题,它会输出x个按钮。

<% @joe.each do |article| %>
    <%= button_to "SELECT", article_url(**parameter for article.id**), :method => 'get' %>
<% end %>

我试图转到此articles_url链接(即localhost:3000 / articles / 1,localhost:3000 / articles / 2),其中数字表示来自id的值集合@joe的元素。 我想知道是否可以这样做或者我是否可以实现JavaScript或jQuery。任何帮助,将不胜感激。谢谢!

这是rake routes命令的结果:

      Prefix Verb   URI Pattern                  Controller#Action
  home_index GET    /home/index(.:format)        home#index
    articles GET    /articles(.:format)          articles#index
             POST   /articles(.:format)          articles#create
 new_article GET    /articles/new(.:format)      articles#new
edit_article GET    /articles/:id/edit(.:format) articles#edit
     article GET    /articles/:id(.:format)      articles#show
             PATCH  /articles/:id(.:format)      articles#update
             PUT    /articles/:id(.:format)      articles#update
             DELETE /articles/:id(.:format)      articles#destroy
        root GET    /                            home#index

1 个答案:

答案 0 :(得分:0)

<% @joe.each do |article| %>
    <%= button_to "SELECT", article_url(article) %>
<% end %>

Rails将在文章中调用id,而article_url将在此上下文中获取

为什么要调用索引参数@joe?

您是否考虑过将其称为@articles?