小编tha*_*kal的帖子

Rails 4.2保存has_and_belongs_to_many关联ID

我有以下一些代码,使用带有protected_attributes gem的Rails 4.1正常工作(我没有将我的代码移到strong_parameters)

车型/ employee.rb

class Employee

   has_and_belongs_to_many :skills

   attr_accessible :skill_ids, ...

end
Run Code Online (Sandbox Code Playgroud)

车型/ skill.rb

class Skill
  has_and_belongs_to_many :employees
end
Run Code Online (Sandbox Code Playgroud)

我在更新员工时将技能绑定到员工,因此我的视图如下所示

意见/员工/ _form.html.erb

 <%= form_for @employee,  do |f| %>
.....

  <%= f.collection_select :skill_ids, Skill.all, :id, :name, {}, 
    {:multiple => true, class: 'select2 '} %>
......
<% end %>
Run Code Online (Sandbox Code Playgroud)

skill_ids是attr_accessible params的一部分,因此它在保存员工表单时工作得很好.(注意:这甚至不需要accept_nested_attributes_for:在员工模型中设置的技能)

Rails 4.2

我正在将我的代码迁移到Rails 4.2并转移到强参数.

我在employees控制器中列出了skill_ids并在更新操作上调用了这个,如下所示:

控制器/ employee_controller.rb

def update
  @employee = Employee.find(params[:id])
  @employee.update_attributes(employee_params)
end

private 
def employee_params
  params.require(:employee).permit(:skill_ids, .....)
end
Run Code Online (Sandbox Code Playgroud)

但它不会更新员工的技能ID.

有人可以指出我在Rails 4.2中发生了哪些变化,以保存这些关联值?

谢谢.

ruby-on-rails nested-forms has-and-belongs-to-many ruby-on-rails-4.2

4
推荐指数
1
解决办法
2006
查看次数

Rails:从ActiveResource调用设计身份验证

我的两个rails应用程序(app1,app2)正在使用活动资源进行通信.

app1调用app2在app2中创建一个用户.app2将创建用户,并希望app1然后将用户重定向到app2的经过身份验证的页面.

从app1到app2会不断要求用户登录.

我正在寻找一种方法来避免app2中的这个登录步骤,而是让用户在第一次活动资源调用期间登录以创建用户,并以某种方式获取写入的身份验证令牌.

使用Devise完成身份验证.Devise中是否有任何支持此功能的内容?

传递身份验证令牌的方式是什么?

ruby-on-rails devise ruby-on-rails-3

2
推荐指数
1
解决办法
1801
查看次数

将表格从Ruby 1.9.2升级到1.9.3,我应该重新安装所有宝石吗?

我希望避免在从1.9.2升级到1.9.3时尽可能重新安装gem.使用RVM管理ruby版本时是否有这样的选项?

ruby rubygems ruby-on-rails rvm

2
推荐指数
1
解决办法
1410
查看次数

为反应日期设置默认的startDate和endDate属性

为react-dates组件设置startDate和endDate的默认值会破坏该组件,并出现以下错误:

我的反应版本:“反应”:“ ^ 16.5.2”“反应日期”:“ ^ 18.1.0”

组件代码:

import React from 'react'

import 'react-dates/initialize';
import { DateRangePicker } from 'react-dates';
import 'react-dates/lib/css/_datepicker.css';

class DateRangeSelector extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      startDate: moment().subtract(2, 'year'),
      endDate: moment(),
      // focusedInput: 'startDate'
    }

  }

  render() {

    return (

      <DateRangePicker
        startDate={this.state.startDate} // momentPropTypes.momentObj or null,
        startDateId={this.props.startDateInputId} // PropTypes.string.isRequired,
        endDate={this.state.endDate} // momentPropTypes.momentObj or null,
        endDateId={this.props.endDateInputId} // PropTypes.string.isRequired,
        onDatesChange={({ startDate, endDate }) => this.setState({ startDate, endDate })}
        isOutsideRange={() => false}
        focusedInput={this.state.focusedInput} // PropTypes.oneOf([START_DATE, END_DATE]) or …
Run Code Online (Sandbox Code Playgroud)

reactjs react-dates

0
推荐指数
1
解决办法
3127
查看次数