DataMapperの&レールとリダイレクト
-
12-09-2019 - |
質問
私は資源としての私のアルバムのモデルをマッピングするために、私の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が、最も可能性の高い効果的なています。
所属していません StackOverflow