質問

私は資源としての私のアルバムのモデルをマッピングするために、私のroutes.rbをしてラインを持っています:

  map.resources :albums

しかし、Railsの中のActiveRecordの代わりにDataMapperのを使用して、なぜだろう、この行:

format.html { redirect_to(@album) }

へのリダイレクトを引き起こします

albums/%23<Album:0x72d452c>

の代わりに:

albums/1
さらに、コンテキストが必要な場合は、

、コントローラーからの私の完全な作成方法は以下のとおりです:

  def create
    @album = Album.new(params[:album])

    respond_to do |format|
      if @album.save
        flash[:notice] = 'Album was successfully created.'
        format.html { redirect_to(@album) }
        format.xml  { render :xml => @album, :status => :created, :location => @album }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @album.errors, :status => :unprocessable_entity }
      end
    end
  end

:慣例であるように、

、この方法は、new.html.erbでの私の「新しい」方法からフォーム送信の結果として呼び出されます

<h1>New album</h1>

<% form_for(@album) do |f| %>

  <p>
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </p>
  <p>
    <%= f.label :description %><br />
    <%= f.text_field :description %>
  </p>
  <p>
    <%= f.label :genre %><br />
    <%= f.text_field :genre %>
  </p>
  <p>
    <%= f.label :country %><br />
    <%= f.text_field :country %>
  </p>
  <p>
    <%= f.submit 'Create' %>
  </p>
<% end %>

<%= link_to 'Back', albums_path %>
役に立ちましたか?

解決

DataMapperのto_paramメソッドをサポートしていますか、あなたのアルバムのモデルに1を実装していますか?我々はオームズの違いをカバーするためにレール3と「ActiveORM」層を持つまでは、あなたはあなたのコードは、ARのようなAPIに準拠を確認する必要があります。

は存在している場合to_param方法であり、これはまだそれを昔ながらの方法をやってみてください、動作しません。

format.html { redirect_to(album_path(@album.id)) }

Clunkierが、最も可能性の高い効果的なています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top