2012-01-07 5 views
0

Это правильный подход, чтобы создать форму со скрытыми полями, как это:Rails создает ответ на сообщение

#show.html.haml 
= semantic_form_for @reply do |f| 
     = f.hidden_field :sender, :value => @message.sender_id 
     = f.hidden_field :receiver, :value => @message.receiver_id 
     = f.hidden_field :title, :value => @message.reply_title 
     = f.input :content, :as => :text 
     = f.submit 

#private_messages_controller.rb 
    def show 
    @message = PrivateMessage.find(params[:id]) 
    @message.read! if @message.receiver == current_user 
    @reply = PrivateMessage.new 
    end 

    def new 
    @message = PrivateMessage.new 
    end 

    def create 
    @message = PrivateMessage.new params[:private_message] 
    @message.sender = current_user 
    if @message.save 
     redirect_to user_path(@message.receiver), :notice => "Wiadomość została wysłana" 
    else 
     render :new 
    end 
    end 

сделать ответ для частного сообщения, или есть лучший способ сделать это?

ответ

1

Конечно, это правильный подход, потому что все переменные, которые вы используете, как скрытое поле связаны с конкретной формой, а не какой-то сессии, так что это хороший способ, чтобы сохранить их, я думаю, что

1

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

В этом случае отправителя я хотел бы посмотреть на сфере, в этом случае, используя отношения, а затем конструирует как current_user.message

Я хотел бы сделать MESSAGE_TYPE (значения частным и общественная) переменный флаг, а не другая модель ,

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

+1

Я не согласен с тем, что скрытые поля являются неправильным подходом, когда все переменные защищены таким образом ... Любой пользователь может отправить личное сообщение кому угодно, почему вы считаете это «неправильным»? – Cydonia7

+0

Речь идет об архитектуре. Да, скрытые поля могут работать, но когда вы используете рельсы и начинаете не использовать его условные обозначения и методы, такие как область, то это плохой подход к разработке программного обеспечения, который приведет к созданию приложения «Rails», написанного с использованием PHP-подхода ». Пожалуйста, не считайте это личной критикой, это скорее комментарий к архитектурному подходу. Очевидно, что это требует больше рубиновой и рельсовой книги (и их много), чтобы действительно объяснить это полностью. Если вы можете объяснить, почему вы предпочитаете скрытые поля для областей, я все уши :) –

+0

Я понятия не имею, как это может быть применимо здесь, может быть, вы можете написать пример? – methyl

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