1

Rails 4.2 アプリケーションでResponders gemを使用しています。Organizationモデル編集ビューで、入力が 1 つのフォームを取得するという、かなり複雑な状況になりましたOrganizationUser。ユーザーを組織に追加するcreateと、OrganizationUsersController. そこでは、次のようなリダイレクト アクションでレスポンダーを使用しています。

def create
  @organization_user = @organization.organization_users.create(organization_user_params)
  respond_with @organization_user do |format|
    format.html { redirect_to edit_organization_path(@organization) }
  end
end

そして私の翻訳:

flash:
  actions:
    create:
      notice: '%{resource_name} was successfully created.'
      alert: '%{resource_name} could not be created.'
  organization_users:
    create:
      notice: "Member has been added"
      alert: "Validation error"

問題は、リソースが有効でデータベースに永続化されている場合、すべてが機能することです。適切な通知メッセージで組織ビューを編集するようにリダイレクトされますが、検証が失敗すると、警告なしでリダイレクトされます。

もちろん、永続化されない限り、フラッシュ警告メッセージを設定できます@organization_userが、レスポンダーを使用してフラッシュを自動的に設定することの要点はそれだけです。

4

3 に答える 3

2

わかりました。検証エラーでフラッシュが適切に設定されていることが判明しましたが、フラッシュが削除された後ではflash.nowなく削除されました。解決策は、次のように使用することです。flashredirect_to:flash_now => false

respond_with(@organization_user, :flash_now => false) do |format|
  format.html { redirect_to edit_organization_path(@organization) }
end
于 2015-02-27T15:16:46.637 に答える
1

試す:

respond_with @organization_user do |format|
  if @organization_user.valid?
    format.html { redirect_to edit_organization_path(@organization) }
  end
end
于 2015-02-27T14:30:34.097 に答える