私は Rails に比較的慣れていませんが、最近、私のモデルの 1 つのコンテンツへのリンクを壊すことができました...
以前、stackoverflow に質問を投稿したto_param
ので、モデルの関数を調整して、製品名が製品 ID に追加されるようにしました。
私が行った変更は次のとおりです。
ではproducts.rb
、
def to_param
"#{id}-#{product_name.parameterize}"
end
ではroutes.rb
、
match '/:id' => 'uniquewetsuits#show'
これにより、希望する住所が正常に作成されます/products/ID-product-name
が、 の商品がないというエラーが表示されID=ID-product-name
ます。
に移動すると/products/ID
、通常どおりページを正常に表示できます。
より長い ID 文字列に一致するように、物事を再接続する方法について誰か教えてもらえますか?
御時間ありがとうございます
編集
コントローラの内容は次のとおりです。
def index
#@search = Uniquewetsuit.search(params[:q])
#@findwetsuits = @search.result(:distinct => true)
#if @findwetsuits.count > 0
# @uniquewetsuits = @findwetsuits.all
#else
@uniquewetsuits = Uniquewetsuit.all
#end
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @uniquewetsuits }
end
end
# GET /uniquewetsuits/1
# GET /uniquewetsuits/1.xml
def show
@uniquewetsuit = Uniquewetsuit.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @uniquewetsuit }
end
end
# GET /uniquewetsuits/new
# GET /uniquewetsuits/new.xml
def new
@uniquewetsuit = Uniquewetsuit.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @uniquewetsuit }
end
end
# GET /uniquewetsuits/1/edit
def edit
@uniquewetsuit = Uniquewetsuit.find(params[:id])
end
# POST /uniquewetsuits
# POST /uniquewetsuits.xml
def create
@uniquewetsuit = Uniquewetsuit.new(params[:uniquewetsuit])
respond_to do |format|
if @uniquewetsuit.save
format.html { redirect_to(@uniquewetsuit, :notice => 'Uniquewetsuit was successfully created.') }
format.xml { render :xml => @uniquewetsuit, :status => :created, :location => @uniquewetsuit }
else
format.html { render :action => "new" }
format.xml { render :xml => @uniquewetsuit.errors, :status => :unprocessable_entity }
end
end
end
# PUT /uniquewetsuits/1
# PUT /uniquewetsuits/1.xml
def update
@uniquewetsuit = Uniquewetsuit.find(params[:id])
respond_to do |format|
if @uniquewetsuit.update_attributes(params[:uniquewetsuit])
format.html { redirect_to(@uniquewetsuit, :notice => 'Uniquewetsuit was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @uniquewetsuit.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /uniquewetsuits/1
# DELETE /uniquewetsuits/1.xml
def destroy
@uniquewetsuit = Uniquewetsuit.find(params[:id])
@uniquewetsuit.destroy
respond_to do |format|
format.html { redirect_to(uniquewetsuits_url) }
format.xml { head :ok }
end
end