0

首先,我是一个完全的 Rails 新手(希望学习 Rails 的前端人员),所以请多多包涵。

我正在制作一个简单的待办事项应用程序来帮助自己学习并遇到问题。我假设这是我想念的超级简单的东西,但就在这里。

在我的应用程序中,用户可以创建许多“process_lists”(基本上是要完成的任务列表)。他们还创建“项目”。每个项目都有一个与之关联的“process_list”。Process_lists 是可重用的,基本上是完成一个项目的一组步骤。一个流程列表可用于多个项目。我已经用名为“process_list_id”的列标记了项目的数据库表,以帮助进行关联。这是在用户创建项目时完成的。

现在是代码,这是我的项目控制器中的内容:

   def show
@project = Project.find(params[:id])
@project_process = ProcessList.where(:id =>  @project.process_list_id)

respond_to do |format|
  format.html # show.html.erb
  format.json { render json: @project }
end

结尾

在我看来:

<%= @project_process.all %>

^^ 这非常适合显示整行,如下所示:

ProcessList id:6,名称:“Derp Derp Derp Derp”,步骤:nil,描述:“lasdjlsdjsadas”,created_at:“2012-06-22 16:21:41”,updated_at:“2012-06-22 16:21 :41", step1: "sjkdfldsjf", step2: "alkdfjdlfj", step3: "lakdfjdljf", step4: "", step5: "", step6: "", step7: "", step8: "", step9: " ", step10: "", step11: nil, step12: nil, step13: nil, step14: nil, step15: nil, step1_description: "klsdjfldskjf", step2_description: "sldjfldskjflsdkfjdls", step3_description: "lkdsfjdlkfjsd", step4_description: "", step5_description: "", step6_description: "", step7_description: "", step8_description: "", step9_description: "",step10_description: "", step11_description: nil, step12_description: nil, step13_description: nil, step14_description: nil, step15_description: nil>

现在我想做的是显示这一行中的某些列。例如“步骤 1”。这似乎很简单,但我已经尝试了很多事情,现在已经搜索了几个小时,但我无法弄清楚。任何帮助都会很棒。

4

2 回答 2

1

直接回答你的问题:

<%= @project_process.first.step1 %>

这将打印出step1列的值,在您的情况下为“sjkdfldsjf”。

如果您has_one :process_list的 class 中有该行Project,那么您可以更轻松地分配@project_process变量:@process_list = @process.process_list. 您也可以放入belongs_to :processProcessList中,这样您就可以从列表对象访问进程。

于 2012-06-24T17:35:30.507 回答
1

我同意之前的回答,但是如果您想编写好的 Rails 代码,请阅读表之间的关联:

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

此外,我不喜欢您的 ProcessList 结构,如果您创建另外一个表:“Steps”并通过关联连接表“Steps”和“ProcessLists”,它看起来会更好。

阅读关联:has_many、has_one、has_many :through、belongs_to 等。这非常重要。

于 2012-06-24T19:21:51.727 回答