0

デフォルトの「表示」の動作を変更できる方法はありますか?

現在、ユーザーがメイン サイトのボタンをクリックすると

<%= link_to "ADD TO CART", product, {:class => "btn btn-primary", :target => '_blank', :method => "get"} %>

ユーザーは、適切な情報を含むページに自動的にリダイレクトされます。

現在、少し異なるページ (モバイル フレンドリー) を作成しようとしており、直接アクセスすると機能する mobile_show ページを作成しました。

/mobile/products/id私の質問は、link_to を変更して、現在の代わりに指すようにするにはどうすればよいproducts/idですか?

更新 (追加情報):

products_controller.rb`内

  # GET /mobile
  # GET /mobile.json
  def mobile
    @products = Product.current

    respond_to do |format|
      format.html # mobile.html.erb
      #format.json { render json: @products }
    end
  end`

  # GET /mobile/products/1
  # GET /mobile/products/1.json
  def mobile_show
    @product = Product.find(params[:id])
    @product.update_attribute(:is_active, false)

    respond_to do |format|
      format.html # mobile_show.html.erb
      #format.json { render json: @product }
    end
  end

routes.rb 内

  match '/mobile' => 'products#mobile'
  match '/cashback' => 'products#cashback'
  match '/mobile/products/:id' => 'products#mobile_show'

p/s: 私はレールと Web 開発全般に非常に慣れていません。

4

2 に答える 2

0

既存のルートに基づいて、ルートを次のように変更できます

match '/mobile/products/:id' => 'products#mobile_show', as: :mobile_product

それからあなたの見解では

<%= link_to "ADD TO CART", mobile_product_path(product), {:class => "btn btn-primary", :target => '_blank', :method => "get"} %>

更新:それは良い習慣ですか?

これは、実際に何を達成したいかによって異なります。アプリのモバイル バージョンを作成する場合は、レスポンシブ UI を検討することをお勧めします。それが不可能な場合、これを処理する正しい方法は、モバイル リクエストを処理する別のコントローラー セットを作成することです。これらのコントローラーは、別の名前空間に配置する必要があります。

namespace :mobile do
  resources :products
end

app/controllers/mobile/products_controller.rbこれは、モバイル リクエストをここで処理することを期待します。

于 2013-03-05T06:57:28.610 に答える
0

実際には、モバイル専用の名前空間またはコントローラーを作成して、REST などを壊さないようにする必要があります。

app/controllers/mobile/products_controller.rb

また

app/controllers/mobile_products_controller.rb

ただし、メソッドを使用するには、ルートに名前を追加して使用できるようにする必要がある場合があります

match '/mobile' => 'products#mobile', :as => "mobile"

次に、変更します

<%= link_to "ADD TO CART", mobile_path, {:class => "btn btn-primary", :target => '_blank', :method => "get"} %>
于 2013-03-05T07:00:56.857 に答える