我正在關注教程http://fuelyourcoding.com/getting-started-with-jquery-mobile-rails-3/將簡單的腳手架Rails 3應用程序中的視圖轉換爲jquery移動前端。Rails jquery移動路由/渲染問題
創建新記錄後,我將其傳遞到show view,並實際查看show view的結果,因爲在該記錄的兩個新創建的字段中顯示,但在瀏覽器中的URL爲http://localhost:3000/currencies。當我查看源代碼時,源代碼實際上是索引視圖,而不是在瀏覽器中顯示的顯示視圖,這非常奇怪。任何想法爲什麼發生這種情況?
的Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.0.10'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
gem 'jquery-rails'
途徑:
Mycurrency::Application.routes.draw do
resources :currencies
#match ':name' => 'Currencies#show', :as => 'currency_name'
root :to => 'currencies#index'
控制器:
class CurrenciesController < ApplicationController
# GET /currencies
# GET /currencies.xml
def index
@currencies = Currency.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @currencies }
end
end
# GET /currencies/1
# GET /currencies/1.xml
def show
# @currency = Currency.find(params[:id])
if params[:name]
if Currency.where(:name => params[:name]).first != nil
@currency = Currency.where(:name => params[:name]).first
else
redirect_to root_path
end
else
@currency = Currency.find(params[:id])
end
# respond_to do |format|
# format.html # show.html.erb
# format.xml { render :xml => @currency }
# end
end
# GET /currencies/new
# GET /currencies/new.xml
def new
@currency = Currency.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @currency }
end
end
# GET /currencies/1/edit
def edit
@currency = Currency.find(params[:id])
end
# POST /currencies
# POST /currencies.xml
def create
@currency = Currency.new(params[:currency])
respond_to do |format|
if @currency.save
format.html { redirect_to(@currency, :notice => 'Currency was successfully created.') }
format.xml { render :xml => @currency, :status => :created, :location => @currency }
else
format.html { render :action => "new" }
format.xml { render :xml => @currency.errors, :status => :unprocessable_entity }
end
end
end
# PUT /currencies/1
# PUT /currencies/1.xml
def update
@currency = Currency.find(params[:id])
respond_to do |format|
if @currency.update_attributes(params[:currency])
format.html { redirect_to(@currency, :notice => 'Currency was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @currency.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /currencies/1
# DELETE /currencies/1.xml
def destroy
@currency = Currency.find(params[:id])
@currency.destroy
respond_to do |format|
format.html { redirect_to(currencies_url) }
format.xml { head :ok }
end
end
end
application.html.erb:
<!DOCTYPE html>
<html>
<head>
<title>Mycurrency</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.css" />
<%= javascript_include_tag :defaults %>
<script src="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.js"></script>
<%= csrf_meta_tag %>
</head>
<body>
<div data-role="page">
<%= yield %>
</div>
</body>
</html>
謝謝賈斯珀的洞察力。我遇到的問題與此處解決的問題相同http://forum.jquery.com/topic/restful-resources-rails-3-and-jquery-mobile。 – ponzicoder
有沒有人想出了這個解決方法?當然,我們不能成爲Rails 3/JQM應用程序中唯一面臨此問題的人。 – jn29098