У меня есть модель пользователя, что HAS_ONE User_Profile и User_Profile belongs_to пользователямаршрутизации использует идентификатор действия и действия имеет ID после отправки формы
в контроллере пользователя у меня есть:
def personal
@user = User.find_by_id(params[:id])
@user_profile = @user.user_profile
@user_profile ||= @user.build_user_profile
end
def update_personal
@user = User.find_by_id(params[:id])
if @user.user_profile.update_attributes(params[:user_profile])
flash[:notice] = "OK"
redirect_to @user
else
flash[:notice] = "Fail"
render :action => 'update_personal'
end
end
В моей personal.html.erb вид у меня есть:
<% semantic_form_for @user_profile, :url => { :action => "update_personal"} do |form| %>
<%= form.inputs %>
<%= form.buttons %>
<%end%>
А на rountes у меня есть:
map.resources :users, :member => {
:personal => :get,
:update_personal => :put
}
Теперь самое странное, что я могу сделать:
users/1/personal
, чтобы увидеть форму, но когда я представляю, я получаю эту ошибку:
Unknown action
No action responded to 1.
Он пытается найти действие с именем 1.
Может ли кто-нибудь указать мне в правильном направлении?
После многих часов, пытаясь понять это, все было просто. Просто перезагрузите сервер. X_X –