如何通过Redmine的Controller Hook访问复选框值

时间:2013-12-11 18:17:44

标签: ruby-on-rails redmine redmine-plugins

我在Redmine上创建了issues_controller的控制器钩子。我按照this教程。

问题是我无法访问复选框(我通过视图页面上的钩子创建)值来设置我的控制器变量。按照我的代码

_new_hook.html.erb

<div class="splitcontentright">
  <% @user = User.current %>
  <b><br><label for="mail_checker_issue"><%= check_box_tag "mail_checker_issue", 1, @user.pref.always_check_email %><%= l(:send_email) %></label></b>
</div>

issues_email_patch.rb

Rails.configuration.to_prepare do
  require_dependency 'issue'
  class Issue
    attr_accessor :mail_checker_issue
  end
end

controller_hook.rb

module Redmine_send_emails
  module Hooks
    class Issues_controller_hook < Redmine::Hook::ViewListener
      def controller_issues_new_before_save(context={})
        context[:issue].mail_checker_issue = context[:params][:mail_checker_issue]
      end
    end
  end
end

直到我检查钩子工作得很好。我已经调试了应用程序并且它正确地调用了controller_hook方法,但我找不到我的复选框中的复选框的值。

怎么了?怎么做?

1 个答案:

答案 0 :(得分:1)

您没有看到您的复选框值,因为您在labelled_form_for @issue之前显示它,因此它不属于表单。

你可以放置它here(有两个地方可以挂钩)

您可以尝试实施gem deface - 我设法在Redmine plugin中使用它。