在Rails中的视图中显示的类别名称

时间:2014-08-16 18:13:36

标签: ruby-on-rails

尝试:我的应用程序有3个业务类别:业务开发,业务财务和业务管理。

我有一个索引视图localhost:3000 / categories,它显示了所有上述业务类别的链接。

它们链接到新操作和新视图。在该视图中,我有以下表单代码:

New.html.erb

<div align="center">
 <h1>What are your important <%= @category.bizdev %> Action items?</h1>

 <%= form_for @category do |f| %>
 <p>

 <p>Store Answer Below:</p>
    <%= f.text_field :name, :size => 40, :style => 'height: 40px' %>
 </p>

 <p>
<%=f.submit 'Save action item' %>
</p>
<% end %> </div>

在线:<h1>What are your important <%= @category.bizdev %> Action items?</h1>

我正在努力获得3个业务类别(业务开发,业务财务,业务管理)中的行列表1。

我尝试在模型之间创建关系:名称和类别。

我无法在新视图中为表单显示相应的业务类别。然后,我需要表单将数据提交到相应的类别视图(我一直试图这样做)。

分类控制器:

class CategoriesController < ApplicationController

def index
    @categories = Category.all
end

def new 
    @category = Category.new
    @bizdev = Name.new 
    Name.@bizdev = "Business Development"
end 

def create
    @category = Category.new(category_params)
    @category.save
    redirect_to facilitates_path
end 

def show 
    @category = Category.find(params[:id])
end


def destroy
end 

private
def category_params
params.require(:category).permit(:answer)
end
end

名称模型

class Name < ActiveRecord::Base
belongs_to :category 
end

CategoriesHelper

module CategoriesHelper 

def bizdev
    bizdev = Name.new
    Name.bizdev = "Business Development"
end 

end

类别模型

class Category < ActiveRecord::Base
  has_many :names 

end

索引视图

<h1>Select A Business Category To Begin Identifying Action Items</h1>

<ol><li><%= link_to 'Business Admin', 'new' %></li><br><br>
<li><%= link_to 'Business Development/Marketing', 'new' %></li><br><br>
<li><%= link_to 'Financial', 'new' %></li>
</ol>


<%= link_to 'Store random action items', new_facilitate_path %><br><br>

<%= link_to 'See a list of already stored action items', facilitates_path %> 

的routes.rb

Rails.application.routes.draw do

resources :facilitates
resources :categories 

root 'categories#index'
get 'show' => 'facilitates#show'
get 'index' => 'categories#index'
get 'new' => 'categories#new'
get 'bizadmstor' => 'categories#bizadmstor'
get 'bizdevstor' => 'categories#bizdevstor'
get 'bizfinstor' => 'categories#bizfinstor'
get 'bizadmshow' => 'categories#bizadmshow'
get 'categories/show' => 'categories#show'
get 'categories/new' => 'categories#new'

2 个答案:

答案 0 :(得分:1)

Name.@bizdev显然是错误的。我想你正在尝试下一步:@category.names << @bizdev

助手也不正确:

bizdev = Name.new
bizdev.name = "Business Development" # i guess you have name property of this model

一般来说 - Name不是班级的实例,而是班级本身。您可以定义其属性,只能对某个类的实例执行此操作,例如本例中的bizdev

在您的示例中,您不需要课程Name,您需要类别类别的属性name。或者,如果你应该是一个类,它也应该有属性名称,以返回它。这个@category.bizdev将返回一个类,而不是一些值。如果@category.bizdev.name是属性,则应为@category.bizdevbizdev

答案 1 :(得分:0)

自己想出来 - 在分类模型中创建:

def name 
  "Business Development"
end 

然后在视野中,称为:@category.name

所以 - 我必须在我的类别模型中创建一个名为name的方法,它只是编写“业务开发”。然后,我通过新视图中的@category.name调用它。