2014-10-27 4 views
0

У меня есть назначенный администратор в моем приложении, где вы можете CRUD клиент, это отлично работает. Вне admin в приложении @current_user имеет возможность редактировать адрес клиента.запись обновления за пределами пространства имен admin [rails]

Я не уверен, как получить к нему доступ и сохранить новое обновление базы данных. это то, что я до сих пор

products_controller.rb (где парциальное оказывает с)

class ProductsController < ActionController::Base 
    layout "application" 
    def index 
     @products = Product.all 
    end 

    def show 
     @products = Product.all 
     @current_user = Client.find_by(id: session[:client]) 
    end 
end 

_overlay_checkout.html.erb (это заполнит форму с клиентами обращаться с БД, и если его не обновляется, они могут изменить его.)

<%= simple_form_for([:admin, @current_user], :url => edit_admin_client_path) do |f| %> 
     <%= f.text_field :address %><br /> 
     <%= f.text_field :address_line_2 %><br /> 
     <%= f.select(:state, options_for_select(us_states, "CA")) %> <br /> 
     <%= f.text_field :zipcode %><br /> 
     <%= f.text_field :city %><br /> 
     <%= f.submit %> 
    <% end %> 

им не знаете, как я могу обновить эту запись, ..., не будучи в разделе админку приложения, .. любая помощь будет принята с благодарностью.

ответ

0

Одна вещь, которую я сделал в таких ситуациях, это указать @submit_url как переменную экземпляра в моем действии контроллера.

class ProductsController < ApplicationController 
def show 
    @submit_url = client_path(@client) 
end 
end 

Вы можете можете передать эту переменную в свой form_for вызов следующим образом:

<%= simple_form_for([:admin, @current_user], :url => @submit_path) do |f| %> 
    <%= f.text_field :address %><br /> 
    <%= f.text_field :address_line_2 %><br /> 
    <%= f.select(:state, options_for_select(us_states, "CA")) %> <br /> 
    <%= f.text_field :zipcode %><br /> 
    <%= f.text_field :city %><br /> 
    <%= f.submit %> 
<% end %> 

Если @submit_url не ноль, то действие формы будет установлен на значении @submit_url иначе его будет установлен на указанный вами ресурсный маршрут. Это означает, что в Admin Controller вообще не нужно менять. Просто альтернативный контроллер (в данном случае product_controller), где вы хотите, чтобы представление формы отправлялось куда-то, кроме автогенерируемого маршрута.

Смежные вопросы