1

Userhas_one UserProfile、およびUserProfileという列がありますmessage

messageここでは、ページをロードせずにフィールドの入力データを保存したいと考えています。

Viewを見ると、ボタンmessage_updateを押すとバック​​グラウンドでアクセスしUpdateます。Controllerで、入力データを受け取り、テーブルの列に保存するに
はどうすればよいですか?messageuser_profile

コントローラーでコーディングする方法がわかりません:(

私はほとんどそこにいると思います:)誰かがそれをコーディングする方法を教えてもらえますか? ありがとう!

コントローラ

def message_update

    current_user.save

    if request.xhr?  # ajax request
        respond_to do |format|
            format.js {render :action=>"message_update.js"}
        end
    else
        redirect_to users_path
    end


end

意見

    <%= form_for(current_user, :url => {:controller => "users", :action => "message_update" }, :remote => true, :class => 'form-search') do |f| %>
        <%= f.fields_for :user_profile do |profile_form| %>
            <div class="input-append">
                <%= profile_form.text_field :message, :class => 'span6' %>
                <button type="submit" class="btn">Update</button>
            </div>
        <% end %>
    <% end %>

ルート

get 'message_update' => 'users#message_update', :via => :put

そして今、これはルーティングエラーを取得しています:(

ActionController::RoutingError (No route matches [PUT] "/message_update"):
4

3 に答える 3

0

ルートを get リクエストとして指定しています。次のように変更します。

match 'message_update' => 'users#message_update', :via => :put

于 2013-06-14T17:28:45.417 に答える