Action Controller不会接受我的私人参数函数中输入字段的参数

时间:2016-04-11 19:17:15

标签: ruby-on-rails ruby

我在我的奖学金表中查询我的某个属性时遇到了困难。我定义了一个私有函数来接受奖学金“表”的以下属性 •奖学金(奖学金类型) •姓名(个人奖励的名称) •价值(奖励金额) •gpa(需要gpa) •截止日期(申请奖励的最后日期)

我为提供者控制器指定了以下内容,其中提供者的节目页面包含部分奖学金#new页面,用户可以使用带有帖子请求的表单标签发布基金:

<%= form_tag(scholarships_path, {:class => "form"}) do %>

     <%= label_tag("date of events") %>

     <%= datetime_local_field(:scholarship, :deadline) %>

     <%= label_tag("The Name Of The Fund") %>

     <%= text_field_tag(:name) %>

     <%= label_tag("Type of Fund") %>

     <%= text_field_tag(:scholarship) %>

     <%= label_tag("Contributable Amount") %>

     <%= text_field_tag(:value) %>

     <%= label_tag("GPA Considerations?") %>

     <h6><span style"font-style:italics">If No GPA is worth consideration, then submit  0.0 for this fund</span></h6>

     <%= number_field(:scholarship, :gpa, in: 0.0..4.0, step: 0.01) %>

     <%= submit_tag(:submission) %>

 <% end %>

以下内容写在providers_controller_path

def show
    @providers_scholarship = Scholarship.new
    @provider = current_provider
end



private
def provider_params
    params.require(:provider).permit(:industry, :title, :password, :email)
end

包含以下信息的页面如下所示:

 <div class="col-md-9">
    <div class="form form-control scholarship-maker" >
        <%= render "scholarships/new" %>
    </div>
 </div>

我得到了一个奇怪的回应,告诉我每当我发布一个帖子请求时,“奖学金”参数都是空的。

我知道这很容易调试,但是我找不到解决这个问题的方法。

1 个答案:

答案 0 :(得分:0)

您的provider_params方法需要provider,并允许提供商使用各种属性。但是,您的表单将发送未嵌套在provider内的属性。

例如,它期待像

这样的参数

{ "provider" => { "industry" => "foo", "title" => "bar", ... } }

更新field_tags以包含provider可以解决您的问题。 e.g

<%= text_field_tag(:name) %>

会变成

<%= text_field_tag("[provider][name]") %>

但是,如果将form_forProvider类一起使用,您可能会更好。