0
我的測試有一些問題。ActionController :: RoutingError:沒有路由匹配[PUT] rspec
還有就是我profile_pages_spec.rb:
describe "ProfilePages" do
subject { page }
describe "edit" do
let(:user) { FactoryGirl.create(:user) }
let(:profile) do
FactoryGirl.create(:profile, user: user)
end
before do
login user
visit edit_profile_path(profile)
end
it { should have_selector('h2', text: 'Заполните информацию о себе') }
describe "change information" do
let(:new_city) { "Ulan-Bator" }
let(:new_phone) { 1232442 }
let(:new_gamelevel) { "M2" }
let(:new_aboutme) { "nfsfsdfds" }
let(:submit) { "Сохранить" }
before do
fill_in "Город", with: new_city
fill_in "Телефон", with: new_phone
select new_gamelevel, from: "Уровень игры"
fill_in "О себе", with: new_aboutme
click_button submit
end
specify { profile.reload.city.should == new_city }
specify { profile.reload.phone.should == new_phone }
specify { profile.reload.gamelevel.should == new_gamelevel }
specify { profile.reload.aboutme.should == new_aboutme }
end
describe "submitting to the update action" do
before { put edit_profile_path(profile) }
specify { response.should redirect_to(user_path(user)) }
end
end
end
還有就是我profiles_controller.rb:
def edit
@profile = current_user.profile
end
def update
@profile = current_user.profile
if @profile.update_attributes(params[:profile])
flash[:success] = "Профиль обновлен!"
redirect_to user_path(current_user)
else
render 'edit'
end
end
輪廓形式:
<%= form_for(@profile) do |f| %>
<%= render 'devise/shared/error_messages', object: f.object %>
<div><%= f.label :city, "Город" %>
<%= f.text_field :city, :autofocus => true %></div>
<div><%= f.label :phone, "Телефон" %>
<%= f.number_field :phone %></div>
<div><%= f.label :gamelevel, "Уровень игры" %>
<%= f.select(:gamelevel,[['Pro', 'Pro'],
['M1', 'M1'],
['M2', 'M2'],
['M3', 'M3']]) %></div>
<div><%= f.label :aboutme,"О себе" %>
<%= f.text_area :aboutme, placeholder: "Немного о себе...",size: " 40x10" %></div>
<div><%= f.submit "Сохранить", class: "btn btn-primary" %></div>
<% end %>
在Firefox中,我可以小號我的表格和數據將會改變。但在我的天賦我有錯誤:
的ActionController :: RoutingError:沒有路由匹配[PUT]
耙路線:
edit_profile GET /profiles/:id/edit(.:format)型材#編輯
輪廓PUT /profiles/:id(.:format)型材#更新
我不明白我做錯了什麼。
它的作品。但另一個錯誤:失敗/錯誤:指定{response.should redirect_to(user_path(user))} 預期的響應是重定向到,但重定向到< http://www.example.com/users/sign_in>我認爲設計助手有些問題。 –