如何将多个记录添加到类别

时间:2014-07-27 21:57:58

标签: ruby-on-rails

我不确定提出这个问题的最佳方式,我意识到这可能超出了这个范围。我试图通过制作我可能有一天使用的简单应用程序来学习rails。我意识到这些不是强大或安全的应用程序,但制作我可以使用的东西给了我一些动力。我已经开始超出简单范围"创建博客/推特"阶段,并没有找到很多帮助。

我试图制作一个应用程序来预订户外旅行。

模特:领导者,团体,旅行,活动,地点和计划

我们的想法是创建一个"计划"发送给可公开查看的旅行分组的人。我已经掌握了一切通过计划来操纵一切的东西。他们都是直接的模式和关系。

我已经挂断了创建计划的最佳方式,并添加了多个现有的计划。每次旅行都有一个plan_id,可以设置,计划可以简单地拉取该集合,但我不知道如何最好(最简单 - 如果可能的话,没有javascript)显示旅行列表,并能够选择多个并将它们添加到计划中。

这有意义吗?我认为开始解开它的最简单方法是查看git repo:https://github.com/ryanmccrary/cabra

https://github.com/ryanmccrary/cabra/tree/trip-plan-add分支在一种方法上是半生不熟的尝试,但我认为我采用了错误的方法。

我没有找到"解决方案"和做这样的事情的最佳方式一样多,可能还有一些提示让我开始......

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用simple_form

在学习开始时创建复杂的表单Rails可能是一个重大的挫折,只需要简单的形式,你可以这样做,并且已经创建的旅行将会出现。

<%= simple_form_for @plan do |f| %>
  <%= f.input :name %>
  <%= f.association :trips %>
  <%= f.button :submit %>
<% end %>

simple_form可以并且会让你做某些事情和html标记某种方式会降低其可定制性,但如果你只是想创建简单的has_many关系,这将是最快的方式。

希望它有所帮助,我知道学习一个框架并陷入一开始似乎微不足道的事情是多么令人沮丧,但结果却毁了整个星期。

应该尝试查看一些railscast集,暂时没有更新,但是有一些非常具体的主题源代码。

添加了:

如果您想将现有旅行与您的计划相关联,您还需要使它们之间的关联具有多对多。您需要创建另一个表来保存两者之间的关联。我们称之为“议程”,抱歉不能想到一个好词。有关关联的更多信息,请参阅RailsGuides

模型/ trip.rb

class Trip < ActiveRecord::Base

  has_many agendas
  has_many plans, through: agenda


end

模型/ plan.rb

class Plan < ActiveRecord::Base

  has_many agendas
  has_many trips, through: agenda

end

模型/ agenda.rb

class Agenda < ActiveRecord::Base

  belongs_to plan
  belongs_to trip

end