显示特定列的内容

时间:2012-06-24 17:22:00

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

首先,我是一个总的Rails新手(想要学习铁轨的前端人),所以请耐心等待。

我正在制作一个简单的todo-ish应用程序来帮助自己学习并遇到问题。我认为这是一件非常简单的事情,我很遗憾,但现在就去了。

在我的应用中,用户可以创建许多“process_lists”(基本上是要完成的任务列表)。他们还创建“项目”。每个项目都有一个与之关联的“process_list”。 Process_lists是可重用的,基本上是完成项目的一组步骤。一个进程列表可用于mnay项目。我已经为数据库表标记了一个名为“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,name:“Derp Derp Derp Derp”,步骤:nil,description:“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&gt;

现在我要做的是显示此行中的某些列。例如“step1”。这看起来很简单,但我已经尝试了很多东西,现在用谷歌搜索了几个小时,我无法弄明白。任何帮助都会很棒。

2 个答案:

答案 0 :(得分:1)

直接回答你的问题:

<%= @project_process.first.step1 %>

这将打印出您step1列的值,“sjkdfldsjf”。

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

答案 1 :(得分:1)

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

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

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

了解关联:has_many,has_one,has_many:through,belongs_to等。这非常重要。