2013年1月26日土曜日

railsパス

railsの命名規則に沿っているうちは問題はありません。(コントローラ名:複数系、ビューディレクトリ:複数系 モデル:単数形 テーブル名は複数)
これらから外れた場合、いろいろ自動で作ってくれているパスが作ってくれなくなります。
そんなときはURLを手動で入れてはどうでしょうか?(コードが増えるので、あまりお勧めは出来ません。。)
<%= form_for(@cat1,:url => "/cat",:html =>{:method => :post}) do |f| %>
通常は以下のような感じ
<%= form_for(@cat1) do |f| %>
パス設定について、いろんな方法 一番目:通常の方法。二番目:ダイレクト 三番目:url_forで作る 四番目:url_for配列版 (注意:authorはモデルのオブジェクトです)
    <%= link_to 'Edit', edit_author_path(author) %>
<%= link_to 'Edit', "/authors/#{author.id}/edit" %>
<%= link_to 'Edit', url_for(:action => :edit ,:id => author.id) %>
<%= link_to 'Edit', url_for([:edit,author]) %>
とにかく命名規則に従った方がコードが少なくなり、楽です。だだ、テーブル名だけはテーブル名をセットする事しても特には問題は発生しません
class Cats < ActiveRecord::Base
  table_name = 'cats'
end
"undefined local variable or method `cats_index_path'"等のエラーが発生する場合はヘルパーにこの関数を追加するのも手です
  def cats_index_path data
    return "/cats"
  end

0 件のコメント:

コメントを投稿