Нужна помощь с реализацией Railscast 198 в Rails 3 - PullRequest
0 голосов
/ 22 сентября 2011

Я пытался внедрить Ryan Bates Railscast 198 в рельсы 3 примерно 4 дня ... по крайней мере ночью, если вы понимаете, о чем я.В любом случае, вот код, который у меня есть сейчас:

Действия контроллера пользователя (Разработайте настройку для отображения различных утвержденных состояний):

def index
  if params[:approved] == "false"
    @users = User.find_all_by_approved(false)
  elsif
    @users = User.find_all_by_approved(true)
  else
    @users = User.all
  end
end

def update
  @user = User.find(params[:id])

  respond_to do |format|
    if @user.update_attributes(params[:user])
      format.html { redirect_to root_path flash[:notice] = "User was successfully updated." }
    else
      format.html { render :action => "edit" }
    end
  end
end

def edit_individual
  @users = User.find(params[:user_ids])
end

def update_individual
  @users = User.update(params[:users].keys, params[:users].values).reject { |p| p.errors.empty? }
    if @users.empty?
      flash[:notice] = "Users updated"
      redirect_to users_url
    else
      render :action => "edit_individual"
    end
  end 
end

Мой пользователь # index

<h1> Users</h1>

 <%= link_to "All Users", :action => "index" %> |
 <%= link_to "Users awaiting approval", :action => "index", :approved => "false"%>
 |
 <%= link_to "Approved Users", :action => "index", :approved => "true" %>

 <%= form_tag edit_individual_users_path, :method => :put do  %>
 <table>
   <tr>
    <th>Email Address</th>
    <th>Approved</th>
    <th></th>
   </tr>

<% for user in @users %>
 <tr>
   <td> <%= user.email %></td>
   <td><%= check_box_tag user.id %></td>
   <td> <%= link_to "Edit", edit_user_path(user) %></td>
</tr>
<% end %>

<p><%= submit_tag "Edit Checked" %></p>
  </table>

<% end %>

И пользователь # edit_individual

<%= form_tag update_individual_users_path, :method => :put do %>
<% for user in @users %>
<%= fields_for "users[]", user do |f| %>
  <h2><%=h user.name %></h2>
  <p><%= check_box_tag user.id %></p>
<% end %>
<% end %>
<p><%= submit_tag "Submit" %></p>

<% end%>

маршруты.1017 * нужен такой "=" материал.#index показывает нормально, но если я установил флажок и затем нажал кнопку «Изменить флажок», я получил следующую ошибку:

ActiveRecord::RecordNotFound in UsersController#update

Couldn't find User with id=edit_individual

Есть идеи ???Большое спасибо

1 Ответ

0 голосов
/ 22 сентября 2011

Пожалуйста, проверьте ваш route.rb и код контроллера, так как он немного отличается от кода на странице Railscast 198: http://railscasts.com/episodes/198-edit-multiple-individually

Лучше всего просто скопировать его, если вы новичок в railsи настроить для использования пользователей вместо продуктов.Затем пройдите через него, чтобы попытаться понять, что он делает.

...