2012年6月21日木曜日

category_idにcategoryを紐付ける

ただの関連付けですが、素人にとっては小石程度でもつまずくものですw

$ rails g model budget category_id:string
$ rails g model category category:string  ←ここのせいで紛らわしくなったw

controllerは別途生成しているとします。

categoryにカテゴリ品目を追加(create, newを使って)し、
budget.rb
 belongs_to :category

category.rb
 has_many :budgets
を追加し、関連付ける。

views/budgets/html.erbに
 <% @budgets.each do |budget| %>
  <%= budget.category.category %>
 <% end %>

budgets_controller.rb  にcategory部分を記述
def new
  @categories = Category.all #追加
end
def create
  @category = Category.new(params[:category])  #追加  
end

で表示された。何を言いたいかというと、
一個目でカテゴリモデルを指定し、2個めでカテゴリカラムを指定して表示させた。
もし、rails g model category name:stringにしておけば、
<%= budget.category.name %>と非常に読みやすいコードになったのにw

ずっと<%= budget.category_id %>か<%= budget.category %>てしてて
つまずいていた。

よかったよ、今日中に間に合ってw
もう頭がまわらん、おやすみww