0

ArticleモデルとLikeモデルがあるRailsアプリがあります。Facebookのように、データベースが新しいレコードをリダイレクトせずに記録するLikeレコードを誰かが作成できるようにしたいと思います。私が持っている2つの要件は、ユーザーをリダイレクトせずに新しいLikeレコードを作成することと、レコードが作成されたことを確認するflashまたはjsメッセージを用意することです。

私はこれを私の見解に入れてみました。ただし、これを行うと、2つの同一のレコードが作成されます。

<%= form_for @like, :remote=> true do |f| %>
  <%= f.hidden_field(:article_id, :value => article.id) %>      
  <%= f.submit "Like" %>
<% end %>

また、これを試して1つのレコードを作成しましたが、localhost:3000/likesに移動しました。

<%= form_for @like do |f| %>
  <%= f.hidden_field(:article_id, :value => article.id) %>      
  <%= f.submit "Like" %>
<% end %>

次に、LikeControllerでformat.htmlとjsonをコメントアウトします。

  def create
    @like = Like.new(params[:like])

    respond_to do |format|
      if @like.save
        #  format.html { redirect_to @like, notice: 'Like was successfully created.' }
        #  format.json { render json: @like, status: :created, location: @like}
      else
        format.html { render action: "new" }
        format.json { render json: @like.errors, status: :unprocessable_entity }
      end
    end
   end

私の2つの要件を満たすための最良の方法は何ですか?ありがとうございました!

4

1 に答える 1

0

ArticlesとLikesは関連していると思います。記事を「いいね」したいときは、実際にその記事を更新していますよね?つまり、ArticlesControllerの更新アクション内でリダイレクトを変更する必要があります。

PSフォームを送信するためにJavaScriptを使用します。例:

<script type="text/javascript">
  $(document).ready(function() {
    $('.edit_[here_comes_the_name] input[type=checkbox]').click(function() {
      $(this).parent('form').submit();
    });
  });
</script>

この例では、check_boxをクリックすると、特定のフォーム(親)からの入力を送信します。もちろん、ニーズに合わせて調整する必要があります。

于 2013-02-13T09:24:15.153 に答える