我有一个模型Actes和一个相互关联的模型关键字。
将新的acte表单发送到服务器时,我无法通过强参数。
这是// --------- Mars Rover Kata: Iteration #1 ------------ \\
// ------------------- User Experience using Console --------- \\
var promptSay = "Play with the Console!\nW = UP \nS = DOWN \nD = RIGHT \nA = LEFT";
var gridEdge = "You can\'go there! \n\nPlease notice that you are playing with an imaginary grid and the farest you can go is 9 steps";
var wrongInput = "---WRONG INPUT!--- Please use a correct input i. e. : \nW = UP \nS = DOWN \nD = RIGHT \nA = LEFT";
// Object Definition: (Vars inside a Var , may have functions) \\
var AJRover = {
position : [0, 0],
invalidInput: function(notright) { // Notification for invalid Input
alert(notright);
this.move(prompt(wrongInput));
},
invalidKey: function(message) { // Notification if you reach grid's edge
alert(message);
this.move(prompt(promptSay));
},
move: function(moveRover) { //Directions
switch(moveRover.toLowerCase()) {
case 'w':
this.goDirection("up");
break;
case 's':
this.goDirection("down");
break;
case 'd':
this.goDirection("right");
break;
case 'a':
this.goDirection('left');
break;
default:
this.invalidInput(wrongInput);
}
},
goDirection: function(direction) { //Directions Functions
switch(direction) {
case 'up':
if (this.position[1] >= -9 && (this.position[1] + 1) <= 9) {
this.position[1]++;
break;
} else {
this.invalidKey(gridEdge);
break;
}
case 'down':
if (this.position[1] <= 9 && (this.position[1] -1 ) >= -9) { // this needs to go back and stop at -9
this.position[1]--;
break;
} else {
this.invalidKey(gridEdge);
break;
}
case 'right':
if (this.position[0] >= -9 && (this.position[0] + 1) <= 9) {
this.position[0]++;
break;
} else {
this.invalidKey(gridEdge);
break;
}
case 'left':
if (this.position[0] <= 9 && (this.position[0] -1) >= -9) {
this.position[0]--;
break;
} else {
this.invalidKey(gridEdge);
break;
}
}
}
};
// ---- object END ----- \\\
// 1- This function calls the object move (this.move)
// 2- Sends the alert to prompts the var promptSay
// 3- Expects input to decide the output
while (true) { //This code block allows user move the rover on mars by interacting with console
var entry = prompt(promptSay);
AJRover.move(entry);
console.log('You are now at position: ', AJRover.position);
}
:
params[:acte]
模型acte.rb包含:
"acte"=>{
"biblio_id"=>"1",
"acte_numero"=>"12",
"keywords_attributes"=>{"0"=>{"keyword"=>"attestation, "}},
"texte"=>"<p>test</p>",
"complement"=>""
}
注意:如果我将has_and_belongs_to_many :keywords
belongs_to :user, optional: true
belongs_to :biblio, optional: true
belongs_to :archive, optional: true
has_many :comments
accepts_nested_attributes_for :keywords, allow_destroy: true,
添加到reject_if: :all_blank
,则表单根本不会被发送。
这是在acte_controller中:
accepts_nested_attributes_for
这会引发def params_acte
params.require(:acte).permit(:biblio_id,
:acte_numero,
:keywords_attributes =>[:keyword],
: resume,
# cut for brievity
答案 0 :(得分:2)
您最后应添加keywords_attributes
。
def params_acte
params.require(:acte).permit(:biblio_id,
:acte_numero,
:resume,
# All other model attributes
:keywords_attributes =>[:keyword],
这样可行。
注意:始终在结尾处添加嵌套属性